2011-08-26 2 views
0

getDefinitionByName 함수가 "com.foo.Bar"와 함께 작동하고 "com.foo.Rab"에 오류가있는 이유를 아는 사람이 있습니까?FB 4.5.1로 전환 한 후 플래시 빌더의 getDefinitionByName이 인종 차별 주의자를 새 클래스로 전환

내 유일한 단서는 프로젝트를 Flash Builder 4.5 for PHP (4.5.1)로 가져 오기 전에 com.foo.Bar 클래스가 만들어 졌다는 것입니다.


내 질문은 당신이 FB4.5.1, 같은 프로그램의 이전 버전, 많은 시간이 있다면 당신은 자신을 위해 시도 할 수 사실, 매우 구체적이다. 분명히이 특별한 이슈를 경험 한 사람이나 유사한 기능을 가진 관련 이슈를 찾고 싶습니다.

답변

0

getDefinitionByName은 현재 ApplicationDomain에 이미있는 클래스 만 가져올 수 있습니다. 앱은 실행 초기에 com.foo.Rab을 일반적인 방식으로 가져와야합니다. 그렇지 않으면 작동하지 않습니다.

+0

나는 그것을 고마워 할 것이다. 그러나 나는 그렇게 생각하지 않는다. – gurghet

+0

com.foo.Rab; // getDefinitionByName ("com.foo.Rab"); - 작동하지만 다른 클래스가 작동하는 이유를 설명하지는 않습니다. 코드에서 결코 호출되지 않습니다 ... – gurghet

1

나는 4.5 플렉스 순수 플래시/AS3에서 카드 게임을 포팅하고 있는데 원래 응용 프로그램에서 동적으로 라이브러리에서 카드 무비 클립로드의 getDefinitionByName를 사용했다 :

var sprite:Sprite = new (getDefinitionByName(spriteName) as Class); 

하지만 내 플렉스 응용 프로그램 I의를 더 이상 사용하지 마십시오. 대신에 나는이 수업이 - Assets.as : 내 메인 클래스에

package { 
    public class Assets { 
     [Embed('assets/Pref.swf', symbol='spades_Q')] 
     public static const SPADES_Q:Class; 

     [Embed('assets/Pref.swf', symbol='clubs_Q')] 
     public static const CLUBS_Q:Class; 

     [Embed('assets/Pref.swf', symbol='diamonds_Q')] 
     public static const DIAMONDS_Q:Class; 

     [Embed('assets/Pref.swf', symbol='hearts_Q')] 
     public static const HEARTS_Q:Class; 

     .... 

다음을 내가 사용 : 예를 들어

var sprite:Sprite = new Assets[spriteName]; 

:

var sprite:Sprite = new Assets['HEARTS_Q']; 

어쩌면이 당신을하는 데 도움이?

관련 문제