2011-08-16 4 views
0

내 응용 프로그램에는 응용 프로그램과 같이로드되는 모듈이 두 개 있습니다.진행률 막대가있는 모듈로드 중

<local:moduleloader url="Module1.swf" id="modulel" /> 
<local:moduleloader url="Module2.swf" id="module2" /> 

각 모듈을로드하는 동안 진행률 표시 줄을 보여줍니다. 진행률 표시 줄은 보이지만 사라지지 않습니다. 응용 프로그램의 전체 프레임 위에 남아 있습니다. 모듈 로더는 다음과 같습니다

(또한 플렉스 3 같은 작품에서 점에 유의하지만, 플렉스 4 사용하고 및 FX는 4 년이되지 않습니다)

<mx:ModuleLoader xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" 
        xmlns="*" 
        creationComplete="initTheModuleLoader()"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.core.Application; 
      import mx.core.FlexGlobals;  

      private var ParentApp:* = FlexGlobals.topLevelApplication; 
      private var standin:DisplayObject; 

      private function initTheModuleLoader():void { 
       addEventListener("loading", onLoading); 
       addEventListener("progress", onProgress); 
       addEventListener("setup", onSetup); 
       addEventListener("ready", onReady); 
       addEventListener("error", onError); 
       standin = panel; 
      } 

      private function onUrlChanged(event:Event):void { 
       if (url == null) { 
        if (contains(standin)) 
         removeChild(standin); 
       } else { 
        if (!contains(standin)) 
         addChild(standin); 
       } 
       progress.indeterminate=true; 
      } 

      import mx.controls.Alert; 
      private function onLoading(event:Event):void { 
       //progress.label=languageXml.lastResult.progress.progressonLoading +' ' + url;//Loading module 
       progress.label = "Loading module" + ' ' + url;//Loading module 
       if (!contains(standin)) 
        addChild(standin); 
       progress.indeterminate=true; 
      } 

      private function onProgress(event:Event):void {   
       //progress.label=languageXml.lastResult.progress.progressonProgress;   //Loaded %3%%... 
       progress.label = "Loaded %3%%...";   //Loaded %3%%... 
       progress.indeterminate=false; 
      } 

      private function onSetup(event:Event):void { 
       //progress.label=String(languageXml.lastResult.progress.progressonSetup).replace('###',url) 
       progress.label = "on SetUp"; 
       progress.indeterminate=false; 
      } 

      private function onReady(event:Event):void { 
       //progress.label= String(languageXml.lastResult.progress.progressonReady).replace('###',url); 
       progress.label = "onReady"; 
       if (contains(standin)) 
        removeChild(standin); 
      } 

      private function onError(event:Event):void { 
       //progress.label=languageXml.lastResult.progress.progressonError + " " + url; 
       progress.label = "Error"; 
      } 

      private function onUnload(event:Event):void { 
       if (url == null) { 
        if (contains(standin)) 
         removeChild(standin); 
       } else { 
        if (!contains(standin)) 
         addChild(standin); 
       } 
       progress.indeterminate=true; 
       progress.label="Module " + url + " was unloaded!"; 
      } 
     ]]> 

    </fx:Script> 

    <mx:Panel id="panel" width="100%" borderStyle="none" > 
     <mx:ProgressBar width="100%" id="progress" source="{this}" /> 
    </mx:Panel> 

</mx:ModuleLoader> 

누구는 이것에 도움을 줄 수?

+0

Flex 4를 이미 사용하고 있다면 4.5로 업그레이드 할 수없고 새로운 모듈/모듈 로더를 사용할 수없는 이유가 있습니까? –

+0

사실 저는 플렉스 3에서 플렉스 4로 업그레이드했습니다. 지금은 불행히도 플렉스 4를 고수해야합니다. – FlexyBoz

+0

이미 3에서 4로 업그레이드 한 경우 4에서 4.5까지 전혀 문제가되지 않습니다. –

답변

0

알아 들었어.

먼저 Flex 3에서 creationComplete 작업에 InitModuleLoader 함수를 넣으면되지만 Flex 4에서는이 메서드를 initialize에 지정해야합니다.

는 둘째 플렉스 4 (이 플렉스 3에서 수행)에 표시되지 않습니다, 그래서 MX 대체 : MX에 의해 패널 : HBox의 또는 S : 그룹

그게 모든 그것은 작동합니다.

하지만 J_A_X는 Fx 4.5를 사용하는 것이 좋습니다. 새로운 moduleLoader thats skinnable이있어 멋지게 표현할 수 있습니다.

+0

"대체 했으므로"또는 "대체 했으므로"무엇을했는지를 명확히 할 수 있습니까? 그렇다면이 답변을 올바른 것으로 표시하여 다른 사람들이 배울 수도 있습니다. –

+0

@Amy Blankenship 나는 대답을 편집했다. .. 지금 ok..sorry – FlexyBoz

0

onReady 처리기는 대기 상태를 제거하지만 진행률 표시 줄은 제거하지 않습니다.

+0

그러나 ProgressBar는 standin (패널)에있어 ProgressBar를 논리적으로 제거해야합니다. 그럼에도 불구하고 removeChild (진행)을 시도했습니다. 문제는 여전히 지속됩니다. – FlexyBoz

+0

진행률이 실제로 패널에 있습니다. 그것을 제거하거나 가시성을 변경하십시오. –

+0

당신은 패널의 가시성을 바꾸는 것을 의미합니까? 나는 많은 희망도없이 시험해 보았다. 아니면 패널을 완전히 제거하고 진행률 표시 줄 만 필요하다는 의미입니까? – FlexyBoz

관련 문제