2013-05-08 4 views
0

"Question.fla"에서 만든 "Question.swf"가 있습니다. Question.fla에는 문서 클래스가 연결되어 있지 않습니다. 이 콘텐츠는 기존 콘텐츠이며 "Question.swf"의 변형이 14,000 개가 넘으며 모두 변경하면 실행 가능한 옵션이 아님을 유의하십시오.AS3 :로드 된 SWF의 일반 '문서 클래스'(MainTimeline?)를 인스턴스화하는 방법은 무엇입니까?

이제 Question.swf로로드되는 내 기본 Flash 응용 프로그램이 있습니다. 실행 시간. Question.swf에는 SWF의 전체 "스테이지"를 나타내는 "MainTimeline"이라는 이름의 "문서 클래스"가 자동으로 만들어집니다. 이 응용 프로그램이 Question.swf Document 클래스의 여러 인스턴스를 인스턴스화 할 수있게하려면 ... 어떻게 할 수 있습니까?

나는 2006 년부터 Flash/AS3에서 작업 해왔다. (나는 외부 콘텐츠, ApplicationDomain 등을 로딩/사용하는 것에 익숙하다.) 그러나 나는 이것을 어떻게하는지 모른다.

hasDefinition ("Question_fla.MainTimeline")을 사용하여 관련 ApplicationDomain을 쿼리하는 것이 포함되었습니다.이 메소드는 false를 반환하고 내 loader.content 객체에서 getQualifiedClassName()을 실행합니다. MovieClip.

+0

잘 이해할 수는 없지만로드 된 SWF의 문서 클래스는로드시 자동으로 인스턴스화됩니다. – RafH

+0

이것은 맞지만, 해당 클래스의 두 번째 인스턴스를 인스턴스화하고 싶습니다. (그리고 세 번째와 네 번째.) 나는 내 loader.content 객체가이 클래스의 인스턴스라고 가정했지만, 그렇다면 getQualifiedClassName() 또는 describeType()도 둘 다 MovieClip이라고보고합니다. – IQpierce

답변

1

로더의 기본 콘텐츠를 복제하는 방법을 모르겠습니다. 그러나 합리적인 해결 방법은 그 바이트에서 여러 로더를 한 번 SWF 바이트를로드하고 만들 수 있습니다 :

  1. 은은 URLLoader로 SWF 바이트를로드

    var urlloader : URLLoader = new URLLoader(); 
    urlloader.load(new URLRequest("your url here")); 
    
  2. 을가 사용로드되면 바이트는 새 표시 객체를 생성합니다 :

    var loader : Loader = new Loader(); 
    loader.loadBytes(urlloader.bytes); 
    
  3. 는 표시 목록 (또는 로더 자체)에로드 로더의 loader.content 표시 객체를 사용합니다.

+0

이것은 내가 원하는 것을 할 수있는 가능한 가장 가까운 방법 인 것 같다. -이 클래스를 인스턴스화 할 다른 방법이 없다는 것은 이상하다. 감사합니다 존! – IQpierce