问题:如果你在两个module之间切换的时候,发现模块虽然停止了,但声音还是在继续播放.
解决办法:在module中添加remove事件.当主程序调用停止事件的时候自然会触发该事件,那么在该事件中调用stop即可.
代码如下:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Script>
<![CDATA[
private var s:SimpleModule=new SimpleModule();
import mx.controls.Alert;
internal function upload():void
{
lo.x=60;
mModule.url=null;
mModule.unloadModule();
}
]]>
</mx:Script>
<mx:ModuleLoader width="300" height="300" id="mModule" >
</mx:ModuleLoader>
<mx:Button label="Load" click="mModule.url = 'SimpleModule.swf';mModule.loadModule();"/>
<mx:Button id="lo" label="Unload" click="upload();" />
</mx:Application>
simpleModule.MXML代码如下:
<?xml version="1.0"?>
<!-- modules/mxmlmodules/SimpleModule.mxml -->
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" remove="init()" >
<mx:Script>
<![CDATA[
import mx.controls.Alert;
internal function init():void
{
Alert.show("delete","delete");
vd.stop();
}
internal function del():void
{
//vd.stop();
//Alert.show("del","del");
}
]]>
</mx:Script>
<mx:Button id="b1" label="v" click="del()" />
<mx:Label text="I have loaded!" x="100" y="100"/>
<mx:VideoDisplay id="vd" x="100" y="126" width="131" height="104" source="test.flv"/>
</mx:Module>