무비클립 내부에 무비클립이 있을 경우 정지와 재생이 뜻대로 되지 않는다. 이를 해결하기 위해 재귀 함수를 간단히 만들어보았다. 재귀로 하지 않는 방법이 있다면 좋겠지만 그런 방법은 잘 생각이 나지 않는다. 음... 


Posted by TY
,

어젠가 그젠가 Deepcopy에 대한 글을 올린 적이 있다. 테스트도 해봤고 해서 너무 잘 되길래 쓰려고 했더니... 어머나.. Movieclip은 안되더라-_-;


 그래서 도움을 구하여보니, export for ActionScript 를 한 다음 new를 해주면 된다 하더라. 여러가지 삽질을 했는데 안되서 다시 질문을 했더니, 친절하게도 예제를 만들어주더라(이 자리를 빌어서 도움을 주신 전수열님께 감사드립니다.)


 아래와 같은 방식으로 처리했다.



1. 만들어진 무비클립(library에 있는 것)의 property에서 Export for ActionScript를 체크해준다.


2. 화면 상의 심볼에 이름을 정해준다.



그리고 소스코드에서 다음과 같이 이용한다.


* 참고로 나는 BulkLoader를 이용한다. MIT LICENSE만세!




public class Test extends Sprite

{

var loader:BulkLoader;

var a:MovieClip;

var b:MovieClip;

public function Test()

{

loader = new BulkLoader("test");

loader.add("duck.swf");

loader.addEventListener(BulkProgressEvent.COMPLETE,onCompleteHandler);

loader.start();

}

public function onCompleteHandler(e:BulkProgressEvent):void

{

a = new(loader.getMovieClip("duck.swf").deco.constructor)();

b = new(loader.getMovieClip("duck.swf").deco.constructor)();

a.x = 100;

a.y = 100;

b.x = 300;

b.y = 300;

addChild(a);

addChild(b);

}

}





그러면 아래와 같은 화면을 얻을 수 있게 된다.




해결이 되서 너무 기분이 좋다!




Posted by TY
,