Actionscript 3 AS3 MovieClip播放不一致
因此,在开始加载我的SWF时,它也会加载一系列动画剪辑,如下所示:Actionscript 3 AS3 MovieClip播放不一致,actionscript-3,memory,movieclip,autorelease,Actionscript 3,Memory,Movieclip,Autorelease,因此,在开始加载我的SWF时,它也会加载一系列动画剪辑,如下所示: var loader:Loader = new Loader(); loader.load(new URLRequest("clips/clip4.swf")); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, clip4Loaded); 我的clipLoaded函数是: private function clip4Loaded(e:Event):void {
var loader:Loader = new Loader();
loader.load(new URLRequest("clips/clip4.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, clip4Loaded);
我的clipLoaded
函数是:
private function clip4Loaded(e:Event):void {
clip4 = e.target.content as MovieClip;
}
正在加载的clip4文件在第一帧有一个stop()
。在游戏后期(clip4是“outro”),我使用:
然而,该剪辑似乎只播放了25%的时间,而我加载的所有其他剪辑都以完全相同的方式播放。唯一的区别是,这些剪辑加载后很快就会播放,这让我相信
clip4
会在某个时候自动播放,但我真的没有任何线索。奇怪-我有一个带有stop()的时间线动画swf第一帧中的代码>和以下代码:
package {
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
/**
*
* @author www0z0k
*/
[SWF(width='400', height='300', frameRate='30')]
public class NewClass extends Sprite {
private const URL:String = 'res/1.swf';
private var spr:MovieClip;
public function NewClass():void {
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.INIT, onloaded);
ldr.load(new URLRequest(URL));
}
private function onloaded(e:Event):void {
spr = e.target.content as MovieClip;
addChild(spr);
spr.addFrameScript(spr.totalFrames - 1, function():void { x = x == 0 ? 100 : 0; } );
spr.addEventListener(MouseEvent.CLICK, onclick);
}
private function onclick(e:MouseEvent):void {
spr.gotoAndPlay(0);
}
}
}
它的工作原理和它写的一模一样
你能把你的clip4.swf
上传到任何地方吗(或者自己测试这个代码)?所以你需要加载一个剪辑,停止它,然后播放一次?什么是clip4End
?你能把它上传到任何地方吗?clip4End
只是电影到达最后一帧时调用的一个函数。现在它所做的就是通过跟踪吐出一些数据。这基本上就是我的代码的工作方式。此外,主权财富基金本身并不重要。我用24个不同的swf电影文件进行了尝试,它们都产生了相同的行为。有时它会播放,但大多数时候不会。经过一些进一步的测试,我很确定它与gotoAndPlay
有关,只是。。。无法播放。@ingot86-您确定每次都调用包含gotoAndPlay
的函数吗?当必须播放动画时,您是否尝试手动切换到下一帧?
package {
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
/**
*
* @author www0z0k
*/
[SWF(width='400', height='300', frameRate='30')]
public class NewClass extends Sprite {
private const URL:String = 'res/1.swf';
private var spr:MovieClip;
public function NewClass():void {
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.INIT, onloaded);
ldr.load(new URLRequest(URL));
}
private function onloaded(e:Event):void {
spr = e.target.content as MovieClip;
addChild(spr);
spr.addFrameScript(spr.totalFrames - 1, function():void { x = x == 0 ? 100 : 0; } );
spr.addEventListener(MouseEvent.CLICK, onclick);
}
private function onclick(e:MouseEvent):void {
spr.gotoAndPlay(0);
}
}
}