2011-04-19 2 views
1

전에이 문제가 발생하지 않았습니다. 정말 이상하게 보입니다. 저는 .swf 파일을 임베딩하고 표시하는 Air 애플리케이션 (스트레이트 AS3 플렉스 없음)을 구축 중입니다. 나는 그것을 원하는처럼루핑 생성자를 발생시키는 Air 응용 프로그램에서 외부 .swf 파일로드

public class Something extends Sprite 
{ 
    private var loader:Loader; 

    public function Something():void 
    { 
     this.addEventListener(Event.ADDED_TO_STAGE, init); 
    } 

    private function init(e:Event):void 
    { 
     removeEventListener(Event.ADDED_TO_STAGE, init); 

     loader = new Loader(); 
     var appDomain:ApplicationDomain = new ApplicationDomain(); 
     var context:LoaderContext = new LoaderContext(false, appDomain); 
     loader.load(new URLRequest("test.swf"), context); 
     trace("hello"); 
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
    } 

    private function loaded(e:Event):void 
    { 
     trace(loader.contentLoaderInfo.sameDomain); 
     loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loaded); 
     addChild(loader.content); 
    } 
} 

이 표시 목록에 .SWF 파일을 추가하지 않습니다뿐만 아니라하지만 반복해서 실행하는 것 같다 다음은 내 코드입니다. "hello"는 모든 프레임을 실행하는 것처럼 trace 문에서 출력 창을 채 웁니다.

코드는 .jpg 파일을로드하기 때문에 플래시 파일에만 관련된 문제 여야합니다. 이 이상한 반복 생성자가 아닌 충돌이 발생하면 보안 오류가 발생할 것이라고 생각합니다.

아무도이 동작을 일으키는 아이디어가 있습니까?

업데이트 : 나는 마침내이 발견 - flash crash when loading external swf (with code example this time around)

그래서 내가 어떻게 일어나고 것은 모두 플래시 파일이 동일한 응용 프로그램 도메인을 공유하고 있기 때문에 둘 다 메인 클래스 파일로 "Main.as"을 가지고 있다는 생각이 생성자를 반복해서 실행하고있었습니다.

아직 문제가 있습니다. 위의 코드를 업데이트하여 다른 응용 프로그램 도메인으로 외부 .swf를로드하려는 시도가 잘못되었음을 보여줍니다.

지금 출력 창에이 얻을 :

hello 
[Fault] exception, information=TypeError: Error #1009: Cannot access a property or method of a null object reference. 

어떤 아이디어?

답변

0

흠,

당신이 "test.swf"로이 파일을 게시 한 당신이 반복적으로이 파일은 같은 파일을 다시로드되어 있도록 "test.swf"를로드하는 것이 가능할 수

?

+0

그래 내가 너무 내 파일의 이름은 "TestLoader.swf"없습니다 "test.swf"생각하여로드 된 SWF의 기본 클래스와 동일하지 않습니다 있는지 확인 . 나는 많은 다른 플래시 파일을 모두 다른 이름으로 시도했지만 여전히 운이 없다. – FlashJordan

0

plase은 로더의 메인 클래스가

관련 문제