2013-04-19 2 views
0

내 게임의 레벨 편집기를 만들고있어 내 게임에 포함 된 모든 클래스 목록에 액세스하고 싶습니다.AS3에서 영화를 시작할 때 코드를 어떻게 실행합니까?

{   
    Main.register(prototype.constructor, "motion");  
} 

그러나, 정적 초기화 만 클래스 호출되는 : 내가 등록하려는 각 클래스에서, 나는 정적 초기화를 넣어, 그리고

public static function register(c:Class, category:String):void { 
    if (classRegister[category] == null) { 
     classRegister[category] = new Array(); 
    }   
    classRegister[category].push(c);   
} 

: 내 메인 클래스의 정적 기능을 가지고 먼저 사용됩니다. 게임이 시작될 때 클래스가 바로 사용되도록 강제하는 방법이 있습니까? 나는 등록 된 모든 클래스를 Main 파일에 명시 적으로 나열 할 수 있다는 것을 알고 있지만 등록을 원하는 새 클래스가 추가 될 때마다 Main 파일을 편집해야한다는 점에서 차선입니다.

감사의 ApplicationDomain에의

+0

클래스가 실제로 코드 어딘가에서 참조되어 있습니까? 그것들은 SWF에 컴파일되어 있습니까? 또한 라이브러리 (SWC)의 일부가있는 경우 대답에 영향을 줄 수있는 링크 옵션이 더 있습니다. –

답변

0

목록 모든 클래스 정의

바르 및 필터 명명 규칙이나 유형에 따라 그들 (인터페이스?).

달성하려면 ApplicationDomain.getQualifiedDefinitionNames() (docs)을 사용할 수 있지만 FlashPlayer 11.3+를 대상으로하는 경우에만 가능합니다.

부수적으로이 클래스를 클래스 필드로 참조해야하므로 컴파일러는이 클래스를 SWF에 포함시켜야한다는 것을 알고 있습니다. 또한 참조 할 클래스를 SWC 라이브러리에 넣고 컴파일러 설정으로 -compiler.include-libraries을 사용할 수 있습니다 (이 경우 static initializers가 호출되는지 궁금합니다).

관련 문제