2012-03-04 3 views
0

내가 플렉스에 내장 된 SWF 응용 프로그램이 응용 프로그램의 한 부분이 응용 프로그램 루트로 설정된 공용 변수 ("1 단계")에 액세스하는 방법에 의존하고Flex 4에서로드 된 swf의 루트에 액세스 하시겠습니까?

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

이에 액세스 할 수 있습니다 4. 최적화되지 동안 , 잘 작동했다. 자, 이제 전체 애플리케이션을 다른 애플리케이션에로드해야하고, 더 이상 내 step1 변수에 액세스하는 방법을 알 수 없습니다.

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를 사용하여 시도했다 :

나는과 같이 새로운 상위 응용 프로그램에 SWF를로드하고 있습니다. 로드 된 응용 프로그램의 루트에서 공용 변수를 처리하는 방법은 무엇입니까?

답변

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

이들은 공개 변수입니다.

관련 문제