【问题标题】: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。

知道我在这里做错了什么吗?

【问题讨论】:

    标签: actionscript-3 flash movieclip


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      相关资源
      最近更新 更多