如果你帮我解决这个问题,我将非常感激。 我试图在我的应用程序中播放ipad一次MovieClip。我试图以这种方式停止,但电影不要停止
var loader:Loader = new Loader();
var swfFile:URLRequest= new URLRequest("/test.swf");
loader.load(swfFile);
movieClip = new MovieClip();
movieClip.addChild(loader);
movieClip.addFrameScript(movieClip.totalFrames - 1, callbackFunc);
movieClip.play();
private function callbackFunc():void
{
movieClip.stop();
}
答案 0 :(得分:2)
var loader:Loader = new Loader();
var swfFile:URLRequest= new URLRequest("/test.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onFileLoaded);
loader.load(swfFile);
//I assume you have declared 'movieClip'?
//if not do:
//var movieClip:MovieClip;
private function onFileLoaded(e:Event):void
{
movieClip = loader.content;
addChild(movieClip);
movieClip.play();
addEventListener(Event.ENTER_FRAME, onEnter, true, 0, false);
}
private function onEnter(e:Event):void
{
if (movieClip.currentFrame == movieClip.totalFrames)
{
movieClip.stop();
removeEventListener(Event.ENTER_FRAME, onEnter, true, 0, false);
//do other stuff
}
}
这应该做你需要的。
答案 1 :(得分:2)
var loader:Loader = new Loader();
var swfFile:URLRequest= new URLRequest("/test.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
loader.load(swfFile);
private function callbackFunc():void
{
movieClip.stop();
}
function onCompleteHandler(loadEvent:Event)
{
movieClip = MovieClip(loadEvent.currentTarget.content);
addChild(movieClip);
movieClip.addFrameScript(movieClip.totalFrames - 1, callbackFunc);
movieClip.play();
}
答案 2 :(得分:2)
您的代码无效,因为它不是播放的movieClip
,而是您加载到其中的外部SWF将播放它的关键帧。创建的movieClip
只有1个关键帧,在该1个关键帧上放置了外部SWf。您应该将stop()
函数添加到外部SWF中。如果这样做是正确的,外部SWF播放一次,然后停止。
您也可以将外部SWF包装到新的MovieClip中,并将已有的代码放到它上面......
或者如果您想要完全控制,您可以调整外部SWF代码,以便在播放最后一帧时调度事件。在SWF上提供自定义停止/重播功能,然后您可以从父SWF调用该功能。
祝你好运!