AS3 MovieClip 无法持续播放
Posted
技术标签:
【中文标题】AS3 MovieClip 无法持续播放【英文标题】:AS3 MovieClip not playing consistently 【发布时间】:2011-02-03 18:17:30 【问题描述】:所以在我的 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
会在某个时候自动发布,但我真的不知道。
【问题讨论】:
所以你需要加载一个剪辑,停止它然后播放一次?clip4End
是什么?可以上传到任何地方吗?
clip4End
只是电影到达最后一帧时调用的函数。现在它所做的只是通过 trace 吐出一些数据。
【参考方案1】:
奇怪 - 我有一个时间线动画 swf,第一帧中有 stop();
和以下代码:
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
上传到任何地方(或自己测试此代码)?
【讨论】:
我的代码基本上就是这样运行的。此外,swf 本身并不重要。我已经用 24 个不同的 swf 电影文件进行了尝试,它们都产生了相同的行为。有时它会播放,大多数时候它不会播放。经过进一步的测试,我很确定这与gotoAndPlay
只是...无法播放有关。
@ingot86 - 你确定每次都调用包含gotoAndPlay
的函数吗?您是否尝试在必须播放动画时手动切换到 ENTER_FRAME
的下一帧?以上是关于AS3 MovieClip 无法持续播放的主要内容,如果未能解决你的问题,请参考以下文章
在 DisplayObjectContainer 中识别 AS3 中的 MovieClip