2012-03-04 7 views
0

У меня есть приложение Swf встроенный в Flex 4. Одна часть приложения опирается на доступ к открытой переменной («step1») установлен в корневом каталоге приложения, и доступ сДоступ к корню загруженного swf в Flex 4?

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

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

ответ

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"] 

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