当其他外部swf的flv内容播放完毕后,我正试图让外部swf加载。
我只使用actiosncript 3大约一个星期,我已经从教程中得到了这一点,所以我的知识是有限的。
这是我到目前为止所得到的:
外部swf代码(含flv内容):
import fl.video.FLVPlayback;
import fl.video.VideoEvent;
motionClip.playPauseButton = player;
motionClip.seekBar = seeker;
motionClip.addEventListener(VideoEvent.COMPLETE, goNext);
function goNext(e:VideoEvent):void {
nextFrame();
}
这是主文件的代码:
var Xpos:Number=110;
var Ypos:Number=110;
var swf_MC:MovieClip = new MovieClip();
var loader:Loader = new Loader();
var defaultSWF:URLRequest = new URLRequest("arch_reel.swf");
addChild (swf_MC);
swf_MC.x=Xpos
swf_MC.y=Ypos
loader.load(defaultSWF);
swf_MC.addChild(loader);
//Btns Universal Function
function btnClick(event:MouseEvent):void{
SoundMixer.stopAll();
swf_MC.removeChild(loader);
var newSWFRequest:URLRequest = new URLRequest("motion.swf");
loader.load(newSWFRequest);
swf_MC.addChild(loader);
}
function returnSWF(event:Event):void{
swf_MC.removeChild(loader);
loader.load(defaultSWF);
swf_MC.addChild(loader);
}
//Btn Listeners
motion.addEventListener(MouseEvent.CLICK,btnClick);
swf_MC.addEventListener(swf_MC.motionClip.Event.COMPLETE,swf_MC.motionClip.eventClip, returnSWF);
我开始理解所有这些是如何运作的,但此刻对我来说都是新的,所以我确信我已经从错误的角度接近它了。
任何帮助都会很棒,因为我现在已经尝试了几天了。
由于
答案 0 :(得分:0)
这里可能有几个问题,但很明显,你似乎没有在正确的地方添加听众。
如果你有A.swf并希望持续加载B.swf的时间线,你需要将监听器直接添加到时间轴而不是任何容器或加载器,除非你'冒泡'事件。
<强> A.swf中强>
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onSWFLoaded);
loader.load( new URLRequest("B.swf"))
function onSWFLoaded(e:Event):void
{
var loaderInfo:LoaderInfo = e.target as LoaderInfo;
// cleanup the expired event listener
loaderInfo.removeEventListener(Event.COMPLETE, onSWFLoaded);
// since the SWF is now loaded you can add a listener to it's timeline ('content')
loaderInfo.content.addEventListener("VideoComplete", onVideoComplete);
function onVideoComplete(e:Event):void
{
// do something here ; )
}
<强> B.swf中强>
// ... your code ...
video.addEventListener(VideoEvent.COMPLETE, onVideoComplete);
function onVideoComplete(e:Event):void
{
// Notifies A.swf that the playback is finished ("VideoComplete" is just custom event, up to you to improve ...)
dispatchEvent(new Event("VideoComplete"));
}