0
플래시 무비의 첫 번째 프레임에로드 된 외부 AS3 클래스 파일이 있습니다.외부 actionscript 파일에서 스테이지 개체를 참조하는 방법은 무엇입니까?
매개 변수로 전달하지 않고 AS3 파일의 스테이지 개체를 어떻게 참조 할 수 있습니까? 스테이지 개체가 전역 영역에있는 것처럼 보입니까? 아니면이 가정에 맞지 않습니까?
플래시 무비의 첫 번째 프레임에로드 된 외부 AS3 클래스 파일이 있습니다.외부 actionscript 파일에서 스테이지 개체를 참조하는 방법은 무엇입니까?
매개 변수로 전달하지 않고 AS3 파일의 스테이지 개체를 어떻게 참조 할 수 있습니까? 스테이지 개체가 전역 영역에있는 것처럼 보입니까? 아니면이 가정에 맞지 않습니까?
스테이지는 Stageable 객체의 속성입니다. DisplayObject에서 파생 된 각 객체는 stage:Stage
속성에 액세스 할 수 있습니다.
그래서 무비 클립과 비트 맵은 조상을 통해 스테이지 속성에 액세스 할 수 있습니다.
개체의 스테이지 속성을 "자동으로"설정하는 방법은 addChild()를 통해 표시 목록에 개체를 추가하는 것입니다.
var mc:MovieClip = new MovieClip();
mc.addEventListener(Event.ADDED_TO_STAGE, func);
trace(mc.stage); //null
addChild(mc);
function func(e:Event){
mc.stage; //defined, returns reference to the parent since we added it to the display list
}
//this is how to use the listener inside the class
public class Grr extends MovieClip{
public function Grr(){
this.addEventListener(Event.ADDED_TO_STAGE, checkF);
}
public function checkF(e:Event){
//inside this function I can do whatever I want that requires stage
}
}
약간의 수정 : DisplayObjects는 조상 중 하나가 실제로 표시 목록에있는 경우 조상을 통해 스테이지에 액세스 할 수 있습니다. 여기서 주목해야 할 점은 Stage는 전 세계적인 것이 아니라는 것입니다. 예를 들어, 다중 창 AIR 응용 프로그램에서 각 창에는 자체 Stage가있을 수 있습니다. 따라서 'DisplayObject.stage'는 ** 스테이지 **를 참조하지 않으며, ** 스테이지는 ** 스테이지를 참조하고, 스테이지는 ** 스테이지를 참조합니다. – fenomas