我正在AS3编写一个纸牌游戏。我正在与之合作的艺术家制作了一张包含所有卡片图形和动画的swf文件(在Flash CS4中)。在FLA工作文件的结构看起来是这样的:在加载的SWF文件中访问另一个剪辑内的剪辑
- Scene
- CardGraphics (Movie Clip)
- CardFront
- CardBack
- CardValueImage (Movie Clip)
...
在程序创建我的卡类的52分的情况下,各自具有加载的SWF文件创建的MovieClip实例。我们的想法是将CardValueImage MovieClip的框架设置为与Card实例的套装和等级成员变量相对应。但是,我无法弄清楚我如何访问CardValueImage并调用gotoAndStop(或任何需要调用的方法)。
这基本上就是我想做的事:
// Card Class
[Embed(source = 'CardGraphics.swf')]
private static var CardsClip:Class;
private var clip:MovieClip = new CardsClip;
// Card Constructor
this.valueImageFrame = suit * 13 + rank; // Calculate which frame contains the
// graphical representation of this card
this.clip.CardValueImage.gotoAndStop(valueImageFrame);
恐怕剪辑的唯一的孩子是一个Loader对象。 – Anders 2010-03-02 08:57:41
你是对的,再次检查上面的答案,我已经更新了一种不同的方法,所以你可以访问嵌入式瑞士法郎的时间表。 – 2010-03-02 11:35:34
感谢您的帮助。我解决了它,设置CardGraphics作为Flash CS4中的类导出并发布到swc文件。这样,我可以跳过使用“嵌入”,直接创建一个CardGraphics的实例。 CardValueImage剪辑显示为CardGraphics的一个属性,我可以像这样调用gotoAndStop: var cg:CardGraphics = new CardGraphics; cg.CardValueImage.gotoAndStop(...); – Anders 2010-03-02 13:38:13