2013-05-16 104 views
1

当我遇到以下问题时,我正在使用Flashdevelop构建一个初学者应用程序。以编程方式创建新框架

我想创建一个MovieClip类型Table.as类:

public class Table extends MovieClip { ... } 

它应该包含两帧:首先应该是一个红色矩形,第二蓝色之一。因此创造了两个矩形两个精灵:

var table:Sprite = new Sprite(); 
table.graphics.beginFill(0xff0000); 
table.graphics.drawRect(this.xCoord, this.yCoord, 150, 50); 
addChild(table); 

var table2:Sprite = new Sprite(); 
table2.graphics.beginFill(0x0000ff); 
table2.graphics.drawRect(this.xCoord + 200, this.yCoord + 100, 150, 50); 
addChild(table2); 

我应该怎么做才能在不同的帧tabletable2变量?所以要收到trace(totalFrames) 2作为答案?

+2

Sprite没有时间轴。我猜想在AS3中添加'KeyFrames'是无法添加到Flash IDE时间轴中的。而是使用Array来存储这些'MovieClips',并将它视为帧。 –

+0

是的,这是我有点害怕的答案 - 只有Adobe实现了帧流,Flashdevelop不支持它,只需要找到另一个解决方案 - 比如你用数组提出的解决方案。无论如何谢谢! – MMMM

回答

1

在Flash IDE之外生成的影片剪辑和精灵功能差不多相同。只有在Flash IDE中创建的MovieClip可以有多个框架,并且您不能在运行时添加或删除框架。 但是,您可以创建一个简单的类以相当快速地在两个表之间切换

public class Switcher():void { 
    function showTable1():void { table1.visible = true; table2.visible = false; }; 
    function showTable2():void { table1.visible = false; table2.visible = true; }; 


} 

var switch:Switcher = new Switcher(); 
switch.showTable1(); 
+0

使用.alpha是一个可怕的建议。设置.visible将是一个有效的解决方案。 – Philippe

+0

够公平的。更新。 –