Доступ к корню загруженного SWF во Flex 4? - PullRequest
0 голосов
/ 04 марта 2012

У меня есть приложение SWf, встроенное в flex 4. Одна часть приложения полагается на доступ к публичной переменной ("step1"), установленной в корне приложения, и доступна с помощью

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

This,пока не оптимально, сработало нормально.Теперь, однако, мне нужно загрузить все это приложение в другое приложение, и я не могу больше понять, как получить доступ к моей переменной 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 безрезультатно.Каков будет метод доступа к публичной переменной в корне загруженного приложения?

1 Ответ

0 голосов
/ 05 марта 2012

Загрузчик SWF имеет свойство содержимого, которое становится доступным после возникновения события «Завершено загрузчик», вы можете использовать его для доступа к любому открытому свойству в загруженном SWF

public var loadedSM:SystemManager;

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

Теперь попробуйте получить значения, ссылающиеся на:this:

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

Не забудьте убедиться, что это публичные переменные!

...