나는이 같은 질문에 대한 몇 개의 게시물을 보았으며 분명한 대답은 없다.AS3의 클래스에서 기본 타임 라인의 변수에 액세스하는 방법은 무엇입니까?
기본 타임 라인 :
var mynum:Number = 0;
가 어떻게 외부 클래스 파일의 코드에서이 변수를 변경 액세스/것인가? 모든 나는
나는이 같은 질문에 대한 몇 개의 게시물을 보았으며 분명한 대답은 없다.AS3의 클래스에서 기본 타임 라인의 변수에 액세스하는 방법은 무엇입니까?
기본 타임 라인 :
var mynum:Number = 0;
가 어떻게 외부 클래스 파일의 코드에서이 변수를 변경 액세스/것인가? 모든 나는
디스플레이 트리의 일부이며 모든 DisplayObject
들 (직접 무대에 나 무대에서 어떤 DisplayObjectContainer
의의 후손 등) root
에 액세스 할 수 있습니다 "인스턴스가 오류가 존재하지 않는"수익을 시도 어느 것이 든 참조 할 것입니다 :
MainTimeline
문서 클래스가없는 경우.trace(MovieClip(root).mynum);
:root
MovieClip
에 캐스팅하면이 작업을 수행 할 수 있음을 의미, 그것은 당신이 컴파일시 오류없이 액세스 할 수 있습니다 기본 타임 라인에 선언 변수와 함수를 의미 dynamic
으로 처리 할 것
코드가 실행될 때 자식이 스테이지에 있어야하므로 동적으로 추가 된 객체의 생성자에 직접 배치 할 수 없습니다 (addChild
). 그러나 개체가 처음으로 무대에 추가 될 때까지 기다려야하는 ADDED_TO_STAGE
이벤트를 활용할 수 있습니다 :
public class Example extends Sprite {
public function Example() {
addEventListener(Event.ADDED_TO_STAGE, added);
}
protected function added(event:Event):void {
trace(MovieClip(root).mynum);
}
}
어쨌든 타임 라인의 변수를 자동으로 찾도록 클래스를 설정 했으므로'MovieClip (루트). '을 백만 번 추가해야하지 않습니까? 내 클래스 파일에 새 변수를 만들지 않을거야. – Koden
'무비 클립 (루트 것은) 클래스가'DisplayObject'과 수있는 잡았다과 .mynum' 무대에 추가되어야합니다. – Marty
무비 클립을 라이브러리에서 드래그하여 무비 클립을 추가 할 때 작동하지만 코드로 선언하면 오류가 발생합니다. – Koden
생성자 내에서 코드를 실행하려고하는 것으로 추측하고 있습니다. 스테이지에'addChild'를 변경하기 전에 실행됩니다. 'ADDED_TO_STAGE' 이벤트를 사용하면 시도하기 전에 이벤트가 발생하기를 기다릴 수 있습니다. – Marty