gpt4 book ai didi

actionscript-3 - 嵌入式 .swf 动画不会在 stop() 调用时停止?

转载 作者:行者123 更新时间:2023-12-04 06:44:06 25 4
gpt4 key购买 nike

我有一个用 Flash Professional 创建的 .swf 动画。为了在我的 actionscript 项目中使用它,我将它嵌入如下:

[Embed(source="../lib/fetching.swf")]
public var Fetching:Class;

然后我创建一个实例并将其添加到舞台,如下所示:

//class variable
var mc:MovieClip;

mc = new Fetching();
this.addChild(mc);

这会导致我的动画出现在屏幕上并无限循环。但是,当调用 mc.stop() 时,动画不会停止。我尝试通过调用 removeChild(mc) 从舞台上删除动画片段,但在 ENTER_FRAME 事件上添加一个监听器告诉我动画片段仍在一遍又一遍地播放。

最佳答案

您应该设置嵌入源 mimeType,然后转换为 ByteArray。并加载。因为您不能直接将类型转换获取类转换为 MovieClip。如果您显式定义 mimeType 并强制转换,您将得到关于 TypeError #1034: Type Coercion failed: cannot convert YourProject_Fetching@108b780d1 to flash.display.MovieClip

引用以下代码。

package
{
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.ByteArray;

public class TestProject extends Sprite
{
[Embed(source="../lib/fetching.swf", mimeType="application/octet-stream")]
public var Fetching:Class;

public var loader:Loader = new Loader();

private var mc:MovieClip;

public function TestProject()
{
loader.loadBytes( new Fetching() as ByteArray );
loader.contentLoaderInfo.addEventListener(Event.INIT, onSwfLoaded);
this.addChild(loader);
}

private function onSwfLoaded(e:Event):void
{
mc = loader.content as MovieClip;
mc.stop();
}
}
}

关于actionscript-3 - 嵌入式 .swf 动画不会在 stop() 调用时停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com