无法将嵌入的影片剪辑投射到影片剪辑类型
Posted
技术标签:
【中文标题】无法将嵌入的影片剪辑投射到影片剪辑类型【英文标题】:Can't cast embeded MovieClip to MovieClip type 【发布时间】:2016-09-10 04:56:44 【问题描述】:我在尝试将 MovieClip 嵌入到我在 FlashBuilder 中编写的 ActionScript 文件中时遇到了问题。
public class ItRock extends Item
public static const ID:String = "rock";
[Embed (source="/../art/menu/console.swf", symbol="itRock")]
private var IconClass:Class;
public function ItRock(game:Game)
super(ID, game);
var icon = new IconClass();
// var icon : MovieClip = new IconClass();
// var icon : MovieClip = new IconClass() as MovieClip;
addChild(icon);
我的 console.swf 文件包含一个名为 itRock 的符号,它的类型为 MOvieClip 并设置为 Export for ActionScript。在我的代码中,我想创建此符号的一个实例并将其添加为我的 Item 类(扩展 Sprite)的子项。但是,当我创建嵌入类的实例时,我会创建一个类型名称为 console_swf$831ea9c30fe7882fadc388b74e115654-652499362 的对象。我可以将它作为一个孩子很好地添加,但如果我尝试将它隐式转换为 MovieClip,我会收到一个无法转换为 MovieClip 的错误。如果我尝试显式强制转换,我只会得到 null。
知道我在这里做错了什么吗?
【问题讨论】:
【参考方案1】:好的,看起来 Flash 会在可能的情况下自动将您的 MovieClips 转换为 Sprites。因此,如果我将 MovieClip 类更改为 Sprite,我上面的代码将起作用。
以下网站对此进行了描述。它建议向您的元件添加额外的帧将强制 Flash 将其视为 MovieClip 而不是 Sprite - 但是,我创建了一个简单的两帧动画并且它仍然导出为 Sprite。 (它甚至会播放动画——我认为 Sprite 应该只是没有动画的静态图像?)
http://chrismweb.com/2011/03/20/problems-with-embedding-swfs-in-actionscript-or-flex/
【讨论】:
以上是关于无法将嵌入的影片剪辑投射到影片剪辑类型的主要内容,如果未能解决你的问题,请参考以下文章