내 응용 프로그램에는 응용 프로그램과 같이로드되는 모듈이 두 개 있습니다.진행률 막대가있는 모듈로드 중
<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>
누구는 이것에 도움을 줄 수?
Flex 4를 이미 사용하고 있다면 4.5로 업그레이드 할 수없고 새로운 모듈/모듈 로더를 사용할 수없는 이유가 있습니까? –
사실 저는 플렉스 3에서 플렉스 4로 업그레이드했습니다. 지금은 불행히도 플렉스 4를 고수해야합니다. – FlexyBoz
이미 3에서 4로 업그레이드 한 경우 4에서 4.5까지 전혀 문제가되지 않습니다. –