无法将MovieClip嵌入到MovieClip类型中

时间:2016-05-13 21:13:20

标签: actionscript-3 flash movieclip

我在尝试将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。

知道我在这里做错了吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

好的,看起来Flash会自动将您的MovieClip转换为Sprite。因此,如果我将MovieClip类更改为Sprite,我的上述代码将起作用。

以下网站对此进行了描述。它建议在你的符号中添加一个额外的框架会强制Flash被视为一个MovieClip,而不是一个Sprite - 但是,我创建了一个简单的两帧动画,它仍然作为一个Sprite导出。 (它甚至播放动画 - 我认为Sprites应该只是没有动画的静态图像?)

http://chrismweb.com/2011/03/20/problems-with-embedding-swfs-in-actionscript-or-flex/