Apache flex FLex:在SWFLoader中卸载swf文件
在Flex 3中,我有一个SWFLoader:Apache flex FLex:在SWFLoader中卸载swf文件,apache-flex,flex3,flash,swfloader,Apache Flex,Flex3,Flash,Swfloader,在Flex 3中,我有一个SWFLoader: <mx:SWFLoader id="player" source="http://youtube.com/v/..." /> 这意味着什么?如何避免 UPD:AIR 2没有这个问题可以试试Loader类吗?我不确定它是否有用,但我通过ActionScript完成所有加载。一般来说,我在ActionScript中做“重量级”编程/逻辑/控制的工作,并将Flex留给更简单的布局代码。也就是说,flex将事情放在适当的位置,actionsc
<mx:SWFLoader id="player" source="http://youtube.com/v/..." />
这意味着什么?如何避免
UPD:AIR 2没有这个问题可以试试Loader类吗?我不确定它是否有用,但我通过ActionScript完成所有加载。一般来说,我在ActionScript中做“重量级”编程/逻辑/控制的工作,并将Flex留给更简单的布局代码。也就是说,flex将事情放在适当的位置,actionscript控制一切。在Flex 3项目中加载剪辑时,我有如下控制代码:
import flash.display.Loader;
private var loader:Loader;
public function init() {
loader = new Loader();
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFailed);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleted);
}
对以下内容的调用:
//here, pop returns a string like "/path/to/movie.swf"
loader.load(new URLRequest(clipsToPlay.pop()));
...
loader.unload();
包含在以下函数中:
private function loadNextClip():void {
if(clipsToPlay.length == 0) {
dispatchEvent(new PlayBackCompleteEvent(PlaybackCompleteEvent.ALL));
return;
}
loader.load(new URLRequest(clipsToPlay.pop()));
}
private function loadCompleted(event:Event):void {
currentClip = event.target.content as MovieClip;
loader.unload();
displayClip();
}
private function displayClip():void {
applyEffects();
currentClip.addEventListener(Event.ENTER_FRAME, monitorForCompletion);
addChild(currentClip);
}
我不确定是否可以使用Loader代替SWFLoader,但如果可以,我希望这能在某种程度上帮助您或其他人
编辑:我只是查了一下,mx.controls.SWFLoader和flash.display.Loader的功能非常相似。我会尝试使用上面规定的Loader,看看它是否能解决问题。您可能也可以通过MXML初始化加载程序,但我不推荐使用它,因为它不是一个可视化组件,我认为最好让MXML处理可视化的东西,而ActionScript处理逻辑的东西。也许可以尝试使用loader类?我不确定它是否有用,但我通过ActionScript完成所有加载。一般来说,我在ActionScript中做“重量级”编程/逻辑/控制的工作,并将Flex留给更简单的布局代码。也就是说,flex将事情放在适当的位置,actionscript控制一切。在Flex 3项目中加载剪辑时,我有如下控制代码:
import flash.display.Loader;
private var loader:Loader;
public function init() {
loader = new Loader();
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFailed);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleted);
}
对以下内容的调用:
//here, pop returns a string like "/path/to/movie.swf"
loader.load(new URLRequest(clipsToPlay.pop()));
...
loader.unload();
包含在以下函数中:
private function loadNextClip():void {
if(clipsToPlay.length == 0) {
dispatchEvent(new PlayBackCompleteEvent(PlaybackCompleteEvent.ALL));
return;
}
loader.load(new URLRequest(clipsToPlay.pop()));
}
private function loadCompleted(event:Event):void {
currentClip = event.target.content as MovieClip;
loader.unload();
displayClip();
}
private function displayClip():void {
applyEffects();
currentClip.addEventListener(Event.ENTER_FRAME, monitorForCompletion);
addChild(currentClip);
}
我不确定是否可以使用Loader代替SWFLoader,但如果可以,我希望这能在某种程度上帮助您或其他人
编辑:我只是查了一下,mx.controls.SWFLoader和flash.display.Loader的功能非常相似。我会尝试使用上面规定的Loader,看看它是否能解决问题。您可能也可以通过MXML初始化加载程序,但我不推荐使用它,因为它不是一个可视化组件,我认为最好让MXML处理可视化的事情,而ActionScript处理逻辑的事情