2011-11-14 13 views
0

読み込まれたswfファイルから何かにアクセスできないようです。ただし、読み込まれたswfファイルの内部から親変数/メソッドにアクセスできます。はswfファイルの読み込みメソッドにアクセスできない

var ldr:ProLoader; 

function loadExternalSWF():void { 
    ldr = new ProLoader(); 
    ldr.load(new URLRequest("introAS3.swf")); 
    wrapperMC.addChild(ldr); 
} 

loadExternalSWF(); 

buttonNextMC.addEventListener(MouseEvent.CLICK, buttonNextMC_Click); 

function buttonNextMC_Click(event:MouseEvent):void { 
    MovieClip(wrapperMC).ldr.gotoAndPlay(31); 
} 

これはちょうど私にエラーを与える:

TypeError: Error #1010: A term is undefined and has no properties. 

EDIT:wrapperMCは私がに外部のムービーをロードするために、ステージ上で作成し、配置しましたちょうど空のムービークリップインスタンスです。

+0

「wrapperMC」とは何ですか? –

+0

編集をご覧ください。 – Caballero

+0

OK、その空のクリップの中に投稿したコードはありますか? 'wrapperMC.ldr'のパスは有効ですか? –

答えて

1

wrapperMCには "ldr"という名前のプロパティが必要なのはなぜですか?一方

function loadExternalSWF():void { 
    ldr = new ProLoader(); 
    ldr.load(new URLRequest("introAS3.swf")); 
    ldr.name = "ldr"; 
    wrapperMC.addChild(ldr); 
} 

function buttonNextMC_Click(event:MouseEvent):void { 
    MovieClip(MovieClip(wrapperMC).getChildByName("ldr")).gotoAndPlay(31); 
} 

、それはあなたのロードされたクリップが、それはそれ自身の子コレクションに追加されます代わりにProLoaderオブジェクトを置き換えることは考えにくいです:あなたが行くことができます。この場合、ローダーの子にgotoAndPlay()を呼び出さなければなりません。 ProLoaderがどのように動作するかのの知識がなくても

私はあなたの次の子の構造を持っていると仮定し

wrapperMC - > LDR - > introAS3

ので、あなたが行くことができる:

MovieClip(DisplayObjectContainer(wrapperMC.getChildAt(0)).getChildAt(0)).gotoAndPlay(31); 

しかし、これはあります推測だけ。

+0

ありがとうございます、2番目の方法は実際に働いた。そのような単純なことはとても複雑でなければならないのはとても奇妙です。 – Caballero

+0

wrapperMCへの参照ではなく、ローダーのコンテンツへの直接参照があったとすれば、すべてがより簡単で分かりやすいものになります。それを複雑にする必要があるコード化した方法 – WORMSS

関連する問題