2012-03-04 6 views
0

私はアプリケーションの一つ4. Flexで構築されたSWFアプリケーション部分は最適ではない一方で、アプリケーションのルートに設定され、Flex 4で読み込まれたswfのルートにアクセスしますか?

var app:Object = FlexGlobals.topLevelApplication; 
trace("step one is "+app.step1); 

これでアクセスされるパブリック変数(「STEP1」)をアクセスに依存している必要があり、正常に動作しています。さて、今度は、このアプリケーション全体を別のアプリケーションに読み込む必要があります。私はstep1変数にアクセスする方法を理解できません。

私はそうのような新しい親アプリケーションにswfファイルをロードされています:

public var myLoader:Loader = new Loader(); 
public var pizzaContainer:UIComponent = new UIComponent(); 

private var myUrl:URLRequest = new URLRequest("chickensoup.swf"); 

protected function application1_creationCompleteHandler(event:FlexEvent):void { 
    myLoader.load(myUrl);         
    pizzaContainer.addChild(myLoader);     
    addElement(pizzaContainer); 
} 

そして、私は無駄にFlexGlobals.topLevelApplication.pizzaContainerを使用して試してみました。ロードされたアプリケーションのルートにあるpublic変数にアクセスする方法は何でしょうか?

答えて

0

SWFローダーは、ローダーCompletedイベントが発生された後に利用可能なコンテンツの特性を持っている、あなたは今、このように参照する値を取得しようと、ロードされたSWF

public var loadedSM:SystemManager; 

// Initialize variables with information from 
// the loaded application. 
private function initNestedAppProps():void { 
    loadedSM = SystemManager(myLoader.content); 
} 

で任意の公開されたプロパティにアクセスするためにこれを使用することができます:

loadedSM.application["lblOne"].text  
loadedSM.application["step1"] 

これらがパブリック変数であることを覚えておいてください。

関連する問題