as3.0 swf 의 url알아내기

[분류없음]
2.0 방식에서는 _url이라는 전역변수로 swf의 위치를 손쉽게 알아 낼수가 있었습니다.
이게 나름대로 효용성이 있는게 자신이 현제 로컬에서 작업을 하는 상태인지 아니면 온라인 상태인지를 체크해서 상황에 맞추어서 파일을 로드해 올수 있도록 해줄수가 있어서 나름 편하게 사용할수가 있었지요
ex)
if(_url.substr(0,3) == "htt")
{

}
이런식으로 상황에 맞추어서 작업이 가능했었습니다.
2.0에서 이런식으로 가능하죠.....

그럼 3.0에서는 어떻게 ,url을 알아 내는지 한번 알아보도록 하겠습니다.
import flash.display.LoaderInfo;
if(this.loaderInfo.url.substr(0,3) == "htt")
{

}
이런식으로 현제 swf의 위치하는 정보를 알아낼수가 있습니다.
2008/07/08 12:11 2008/07/08 12:11

한국타이어 Enfren

[Work]

http://enfren.hankooktire.com/

AS3.0을 이용한 첫 작업이 되었다.
기능적으로도 심플하고 개발쪽에 연동되는 작업또한 고난이도가 없었기 때문에 3.0을 활용해 제작을 하기로 마음을 먹고 제작을 하게 되었다.
그동안 테스트나 필요할만한 클래스를 제작해 두었지만 혹시 나올지 모르는 버그나 레퍼런스가 절대적으로 부족해서 쉽지 않을거라 생각을 했었는데 역시나 버그가 하나둘씩 나왔다.
프로젝트 동안에 발생한 버그.

1. 엔터 프레임으로 무비클립을 제어하는 동안에는 엔터프레임으로 제어되는 클립안의 무비클립은 멈추게 된다.(이부분은 다른 사람들에게 물어봤지만 다들 모르고 있는 버그였다 차후에 문제가 있을듯 하다...)
2. 로드된 swf를 삭제할 경우 오브젝트가 남아있다.(flv,사운드,리스너등이 남게된다. 스코프를 잃어 버린 상태에서 혼자 작동을 하고 있기 때문에 심각한 문제였다.) help에 명시되어 있기 때문에 버그라고 할수는 없고 알아서 리소스 관리를 잘해줘야 할듯하다...^^;;;
3.xml데이터를 불러왔을때 4000자 이상의 문자가 있을경우 제대로 인식이 되지 않는 문제(이건 정말 심각한 문제였다. 할수 없이 utf - 8 로 형태를 바꿔서 불러왔지만 실제 개발쪽과 연동이 된다면 이건 통용이 안될수도 있기 때문에 xml로 연동하는건 생각을 해봐야 할 문제인것 같다.)

원래부터 버그를 예상하고 작업했지만 정말 as3.0은 왼지 내가 베타 테스터가 되는 느낌이 강하다.
버그도 많고 너무 성급히 출시 한게 아닌가 하는 생각이 들정도...;;;; 아무튼 무리 없이 오픈했기에 뿌듯하다..

2008/06/13 12:27 2008/06/13 12:27

cs 3.0 네비게이션 만들기

[Flash/script]

네비게이션을 만들어 보면서 몰랐을때는 정말 이젠 앞으로 노가다좀 해야 겠다는 생각을 가지게 만든 부분이었다.

보통 무비클립영역 아래 버튼을 만들게 되면 기존에는 무비클립에 영향을 받질 않았다 그런데
cs3로 넘어 오면서 이부분이 바뀌게 되었습니다. 아래 swf를 보시면 반투명의 파란 색 무비클립이 보라색의 버튼 부분을 가리고 있습니다. 예전같으면 무시 했을걸 이제는 무비클립이 막아 버립니다.

그래픽 심볼의 경우는 버튼이 무시하고 히트영역이 잡히지만 이제는 무비클립이 버튼보다 위에 있는 경우에는 영역을 벗어 날수가 없습니다.

사실 장단이 있지만 의외로 작업을 할때 신경이 쓰이는 부분입니다.

이럴 경우를 대비해서 아래 속성들이 존재합니다.

대상 무비클립.mouseChildren= false;
대상 무비클립.mouseEnabled = false;

위에 있는 건 대상 무비클립 안에 있는 무비클립이 마우스 이벤트를 감지 하는 옵션을 끄는 부분
아래 있는건 대상 무비클립 자체의 마우스 이벤트를 감지를 끄는옵션 입니다.

이 코드를 두개다 넣어 줘야 하겠더군요

2008/04/01 17:24 2008/04/01 17:24

AS 30 달라진 loadVars 사용하기

[Study]

플래쉬에서 외부테이터를 연동하기 위해서 사용 하는 함수가 기존엔 loadvars였는데 이번에도 새롭게 바뀌었다. 링크를 걸어주는것과 대동소이 한것 같다... 아쉽게도 아직까지 실무에서 사용을 하지 않기 때문에 페이지에 값을 넣는건 아직 해보지 못하고 있지만.... 시간이 허락하는데로 테스트를 해봐야 겠다...^^

more..

2008/01/24 11:47 2008/01/24 11:47

AS 30 달라진 flahvars 사용하기

[Study]
플래쉬와 html상에서 가장 간단하게 데이터를 주고 받을수 있는 방법은 flashvars로 데이터를 넣어주는것이다.
그런데 기존처럼 flashvars로 넣어주는 변수명을 있는걸로 가정을 하고 코딩을 하면 이게또 친절하게 에러가 난다. 바뀐 방식이 있을거라곤 생각했지만 찾기가 쉽지 않았다...-_-;;;
이 외부에서 넣어주는 데이터를 받아들이는건 새로운 오브젝트를 생성해서 받아들이는 방식이다.

more..

2008/01/23 11:35 2008/01/23 11:35

AS 3.0 동적인 파라미터 받아들이기

[Study]

AS 3.0은 파라미터의 갯수와 타입을 미리 정해준다.
만약 전달되어야할 파라미터의 갯수가 다르다면 아웃풋 창에서 에러를 만나게 된다..^^;;;
머 이 에러 메세지가 프로그램어들에게는 정말 고마우면서도 달갑지 안고 보고 싶지 않은 메세지이다...ㅎㅎ
그런데 코딩을 하다보명 항상 파라미터의 갯수가 같을수는 없다 값이 달라지거나 해야할 경우가 분명 생긴다. 그래서 해결책이 없을까 찾다 보니 역시나 헬프에 있었다...ㅋㅋ
방식은 의외로 간단하다....^^

more..

2008/01/23 10:55 2008/01/23 10:55

플래쉬cs 레퍼런스

[Flash/script]

Adobe Flash samples
You can download samples of ActionScript 2.0, ActionScript 3.0 and Flash Lite.

Flash resources
You can learn from livedocs or download PDFs.

thanks to jhb0b

일본어로 올라온 레퍼런스를 어떤분이 정리하셨는지는 모르겠지만 네이버의 번역기로 번역한것을 링크해 놓은 곳입니다. 번역이 완벽하지 않지만 그래도 볼만은 합니다.
http://m2c.iptime.org/as3.0/as3.0_Reference.html

2007/05/17 14:31 2007/05/17 14:31

flash cs 추가된 타임 관련 함수

[Flash/script]

cs로 바뀌면서 정말 많은 함수들이 추가가 됐을건데 제가 본것중에서 그래도 기억이 남는 함수를 소개해 드리겠습니다.
아마 setInterval의 대체로 된다는 애기가 있었는데 이번 버전엔 살이 있는듯 하구요
setTimeOut이라는 함수가 타임관련해서 메소드가 추가 되었습니다.
이함수는 사용자가 자신이 원하는 시간이 지난후에 함수를 실행 해주는 함수인데요 기존에 비슷하 기능이 setInterval인데 이건 불안정하기 때문에 사용하지 않고 거의 대부분의 사람들이 직접 자신이 정의한 함수를 썻는데 이걸 이번 버전엔 추가 해준것 같습니다.
사용 법은 머 간단합니다...
ex1)
function testFunc ()
{
trace ("str1 : ",arguments[0],"str2",arguments[1]);
}
setTimeout (testFunc,2000,"장난이냐?","테스트 입니다.");


이런식으로 함수를 사용하는데 기본적으로 파라미터는 2개를 가집니다.
첫번째는 함수 두번째는 ,밀리초 단위의 타임 그 이후에 들어가는건 사용자 임의로 함수에 넘겨줄 파라미터들입니다.
setInterval의 방식처럼 아이디 값을 주고 사용도 가능하고 아이디를 지우는 것도 가능합니다.
ex2)
var inter = setTimeout (testFunc,1,"머야","외요?");
clearTimeout (inter);

이런식으로 지우는것도 가능합니다.

2007/05/16 17:53 2007/05/16 17:53

플래쉬 cs attachMovie는 어떻게 바뀌었나?

[Flash/script]

이번 cs에서는 attahcMovie가 사라졌습니다.
음....사라졌다 하니까 그럼 어떻게 만들까 생각 하실수도 있지만 attahcMovie란거만 사라지고 새롭게 바뀌었다고 보면 될거에요...ㅎㅎ
일단 어떤식으로 구현되나 보도록 하겠습니다... 보시면 너무 간단해서...ㅎㅎ;;
#1

일단 기존 처럼 에프8로 무비클립을 만듭니다... 당연히 그래픽 심볼은 안되겠죠????

#2

여기도 똑같습니다. 대신 attachMovie에서 쓰던 식별자 대신 클래스가 활성화 되는데 클래스에다가 자신이 원하는 이름을 줍니다. 베이스 클래스는 건드리실 필요 없습니다. 머 건들여도 에러가 나죠...ㅎㅎ
여기까진 똑같습니다.
#3
attachMovie 대신 클래스를 생성 시켜주고 addChild로 스테이지에 넣어주면 됩니다.
이런 방법으로 사운드도 라이브러리에 있는 사운드를 가져올수 있더군요...
저는 attchSound가 사라져서 로드만 되는줄 알았는데 그게 아니더군요....ㅎㅎ;;;;
그냥 간단하게 클래스를 자동으로 만들어주는것 같습니다.
머 방식이 바뀌어서 그렇지 기존보다 쉬워진듯한 느낌입니다.^^
2007/05/14 14:46 2007/05/14 14:46

cs 댑스 관리및 for in 구문

[Flash/script]
cs로 오면서 댑스가 사라졌습니다.
음.. 예전에 댑스메니저를 사용해 보질 않아서 새로 생겨난 child시리즈가 댑스메니저와 사용법이 비슷하지는 모르겠구요 아무튼 확~ 바뀌었습니다... depths를 쓰면 그냥 에러가 나주십니다...ㅎㅎ;;;
일단 지금의 cs는 댑스라는 문구를 사용하지는 않지만 일단 댑스라 부르겠습니다.
기존에 사용하던 loadMovie,attachMovie와는 다른데요... addChild()로 등록하고자 하는 오브젝트를 등록하면 등록한 오브젝트가 나타나고 자동으로 댑스가 증가해 줍니다...ㅠ..ㅠ 물론 지정도 가능합니다...지정해서 넣는 경우엔 addChildAt()입니다.
그런데 애전에는 댑스가 동일한게 두개면 사라져 버리거나 스테이지에서 무비클립은 보이는데 이게 제어가 안되고 막 그랬죠...^^;;;
이문제를 해결한듯 한데... 원천적으로 같은 댑스를 갖게 하는거 자체를 막아버린거 같습니다.
또한 1~5까지 무비클립을 만들어서 무비클립의 댑스가 5까지 만들어 졌는데 중간에 무비클립을 제거 하면 한간에 빠진것부터 채워서 댑스가 4까지 가게 됩니다.. 아직까지는 테스트를 많이 안해봤지만 제가 확인해본봐로는 채워지는듯 합니다.함수명이 아애 바뀌어서 생소하기도 하지만 머...편해졌다고 생각하죠...^^;;
아마 이 개념은 플래쉬를 하려면 계속 부딪히게 될건데 익숙해 져야죠...머..-0-;;;
일단 제 생각에 가장 자주 사용하지 않을까 하는 메소드를 정리해 봤습니다.
//타겟.getChildAt(0)  타겟이 되는 무비클립의 파라미터값에 따라 파라미터 값의 댑스에 해당하는 무비클립을 리턴시킵니다.
//타겟.getChildIndex(알고자 하는 무비클립) 
//타겟.numChildren 타겟이 되는 클립의 가장 마지막 넘버를 알려준다.
//타겟.swapChildren(바꾸고자 하는 무비클립1,바꾸고자 하는 무비클립2)
//타겟.swapChildrenAt(바꾸고자 하는 무비클립 넘버1,바꾸고자 하는 무비클립넘버2)
//타겟.setChildIndex(바꾸고자 하는 무비클립,바꿀 넘버)

//
이것도 다 헬프에서 검색하면 나오지만...ㅎㅎ;;;;
그리고 또한가지 예전에 for in 구문을 이용해서 무비클립이 가진 속성을 알아볼수 있었죠 그런데.... 이게 사라졌습니다....ㅎㅎ;;;;;; 자주는 아니더라도 가끔 사용했는데 이제 어케 알아내지 생각했지만 다른 방식으로 for in을 이런식으로 구현 가능합니다..
//
//numChildren로 타겟이 되는 무비클립이 가진속성의 갯수를 알아내서 for문으로 돌리는 겁니다.
//타겟.getChildAt(i)이 메소드는 위에 나온것 처럼 타겟의 몇번째 속성에 어떤 녀석이 있는지 알아냅니다.

//
for (var i=0; i<타겟.numChildren; i++)
{
trace (타겟.getChildAt(i).name);
}
사실 제가 말 주변이 없어서 더 이상 자세히 설명은 불가능 하지만 한번씩 사용해보신다면 이해가 가실겁니다..ㅎㅎㅎ
2007/05/09 16:46 2007/05/09 16:46