2016-05-13 79 views
0

我在尝试在FlashBuilder中编写的ActionScript文件中嵌入MovieClip时遇到问题。无法将嵌入的MovieClip投射到MovieClip类型

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的象征符号,类型影片剪辑,并设置为ActionScript导出。在我的代码中,我想创建这个符号的一个实例,并将其添加为我的Item类的一个子类(它扩展了Sprite)。但是,当我创建嵌入类的实例时,我创建了一个类型名称为console_swf $ 831ea9c30fe7882fadc388b74e115654-652499362的对象。我可以添加它作为一个孩子罚款,但如果我尝试将其隐式转换到MovieClip我得到一个错误,无法转换为MovieClip。如果我试图明确投射,我只会得到空。

任何想法我在这里做错了吗?

enter image description here

回答

0

好了,它看起来像你的Flash影片剪辑时,它可以自动转换成精灵。所以我上面的代码将工作,如果我将MovieClip类更改为Sprite。

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

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