2013-05-16 137 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

夠公平的。更新。 –