所以在开始我的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 {
clip4 = e.target.content as MovieClip;
}
正在加载的clip4文件在第一帧有stop()
。在游戏的后期(clip4是“outro”)我使用:
clip4.gotoAndPlay(0);
clip4.addFrameScript(clip4.totalFrames - 1, clip4End);
然而,剪辑似乎只有25%的时间播放,所有其他剪辑我加载完全相同的方式播放正常。唯一的区别是这些片段在加载后很快就会播放,这让我相信clip4
在某些时候被自动释放但我真的不知道。
答案 0 :(得分:0)
奇怪 - 我在第一帧中有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
上传到任何地方(或者自己用它来测试这段代码)吗?