0

Flex 4 で構築された SWf アプリケーションがあります。アプリケーションの一部は、アプリケーション ルートに設定されたパブリック変数 (「step1」) へのアクセスに依存しており、次のようにアクセスされます。

var app:Object = FlexGlobals.topLevelApplication;
trace("step one is "+app.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無駄に使用しようとしました。ロードされたアプリケーションのルートでパブリック変数にアクセスする方法は何ですか?

4

1 に答える 1

0

SWF ローダーにはコンテンツ プロパティがあり、ローダー完了イベントが発生した後に使用できます。これを使用して、ロードされた 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"]

これらがパブリック変数であることを忘れないでください!

于 2012-03-05T04:43:14.420 に答える