2010-03-27 3 views
4

플렉스 모듈에 문제가 있습니다. this.loaderInfo.url에 의해 url 변수에 접근하고 싶습니다. 모듈의 createionComplete 핸들러에서 함수를 호출하고 때로는 작동하고 때로는 그렇지 않습니다. (액세스 할 수 없습니다 ... null). 어떤 제안?this.loaderInfo가 플렉스에서 null입니다.

이 함수는 module의 creationComplete 처리기에서 호출됩니다. 그리고 비록 그것이 오류 창을 던지더라도, url을 가진 경고는 보여주고 모듈의 url을 포함합니다.

private function checkModuleUrl():void 
{ 
    var url:String = this.loaderInfo.url; 
    Alert.show(url); 
} 

답변

0

this.root.loaderInfo 시도하십시오. 당신이 플렉스를 사용하고 있기 때문에

+0

동일 × × × × × × × · · · ... –

1

, 당신의 최선의 방법은 다음과 같습니다

Application.application.url 

참조 : Flex™ 3.5 Language Reference

편집 :이 경우 당신이 당신의 코드 특히의 creationComplete 코드와 어디를 더 게시 할 수 checkModuleUrl을 호출하십시오. 나는 당신이 얻을 수있는 null 참조가 귀하의 DisplayObject에 대한 loaderInfo 인스턴스를 checkModuleUrl을 호출하기 전에 디스패치하지 않는 이벤트로 인해 발생했다고 의심합니다.

+0

이것은 모듈이 아닌 어플리케이션의 URL입니다. –

0

브라우저 관리자 사용 var bm : IBrowserManager = BrowserManager.getInstance(); bm.init(); bm.url;

public static function getModuleUrl(module:Object):String { 
    var loaderInfo:LoaderInfo = module.loaderInfo; 
    if (loaderInfo) 
     return loaderInfo.url; 
    else { 
     if (module.owner is ModuleLoader) { 
      return ModuleLoader(module.owner).url; 
     } 
    } 
    return null; 
} 

하지만 결과 : '#'를 사용 bm.fragment

0

후 변수 모듈에 대한 'URL'속성, 나는이 정보는이 기능을 함께 얻을 수있는 유일한 방법은 없습니다 어느 경우에서도 null가 돌려 주어집니다. 이 코드는 ModuleManager 또는 ModuleLoader가로드 된 모듈에서 저에게 적합합니다. 또한 url이없는 경우 바이트 배열에서 모듈을로드 할 수 있습니다.

5

APPLICATION_COMPLETE 이벤트가 발생한 후 응용 프로그램에서 가장 초기에 loaderInfo를 가져올 수 있습니다.

+0

이것은 나에게 많은 도움이되었습니다. Viliam,이 답을주십시오. – nalply

관련 문제