无法将嵌入的影片剪辑投射到影片剪辑类型

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/

【讨论】:

以上是关于无法将嵌入的影片剪辑投射到影片剪辑类型的主要内容,如果未能解决你的问题,请参考以下文章

设置影片剪辑图像/背景

将鼠标悬停在完整播放影片剪辑

无法访问影片剪辑中的文本字段

ActionScript:符号影片剪辑不循环

无法使功能中的影片剪辑消失

AS3.0中影片剪辑元件嵌套了个动态文本框,怎样才能在文本框上也能显示手型?