2011-05-31 12 views
0

私のswfがローカルに読み込まれたのか、別のswfから読み込まれたのかを調べたいと思います。この目的のために私はflaに変数 'parentType'を宣言しました。 var parentType:String =ストリング(親); ドキュメントクラスに、swfがローカルに読み込まれたのか、別のswfから読み込まれたのかを判断する関数があります。ドキュメントクラス内の関数の名前は 'externalOrInternal'です。 varaible parentTypeは、関数としてexternalOrInternal関数に渡されます。 externalOrInternal(parentType); ドキュメントクラスの名前はMainです。 メインのコンストラクタでは、関数pollResize()を使用しています(この関数の使用は、サイズ変更イベントをリスンすることです。コードのその部分は、以下のスニペットには表示されません)。flaからドキュメントクラスに変数を送信してからアクセスする

My flaは次のとおりです。

var parentType:String = String(parent); 
externalOrInternal(parentType); 

私のドキュメントclasは次のとおりです。

package { 

    import flash.display.MovieClip; 


    public class Main extends MovieClip { 

     private var swfParentType:String; 

     public function Main1() { 

      pollResize(); 
     } 

     public function externalOrInternal(parentType:String) { 



      swfParentType=parentType; 

      trace("Inside externalOrInternal"); 
      trace(swfParentType); 


     } 

     private function pollResize():void { 

      trace("Inside pollResize"); 
      trace(swfParentType); 


     } 
    } 
} 

私はこれが

Inside pollResize 

null 

Inside externalOrInternal 

[object Stage] 

をトレースします何で実行すると、私はswfParentTypeが機能externalOrInternal insde値を持っていることがわかります。私の疑問は、nullが関数pollResizeの内部で追跡される理由です。内部のexternalOrInternalとして[オブジェクトステージ]が表示されないのはなぜですか?このため、ステージのサイズ変更イベントをさらに進めることはできません。pollResize関数で適切な値がトレースされるようにする必要があります。

答えて

3

あなたのトレースによると、pollResizeはswfParentTypeを設定するexternalOrInternalの前に呼び出されるので、最初はnullをトレースするのが普通です。また、あなたのコンストラクタはひどく呼び出されていますが、それはあなたが問題を解決することはできませんが、それはメインになるべきMain1を読みます。

+1

親コメントをDocumentクラスに送信する必要はありません。そこからもアクセスできます。 – Neverbirth

+0

ありがとうございました。問題を修正しました。 –

+0

@Marty質問を編集するために多くの兄弟に感謝します。 –

関連する問題