2010-03-24 21 views
0

我正在寫一個MS烤漆工藝般的簡單程序在Flash中使用純ActionScript 3.0此事件的Actionscript在畫圖程序

  • 一個工具欄,允許你選擇什麼形狀(星,心臟...)你想畫
  • 另一個用於顏色選項的工具欄,其中每個按鈕都是一種顏色(紅色,綠色)。總共有10種顏色。
  • 然後是畫布,點擊時它將繪製形狀的位置。

我有以下類

class Main extends sprite 
class ColorButton extends sprite 
class ShapeButton extends sprite 

class Star() extends sprite // star object to be added to Main (canvas) 
class Heart() extends sprite // heart object to be added to Main (canvas) 

由於我是新來的AS林不知道如何/在哪裏保存狀態(用戶選擇)。如何點擊按鈕改變畫布上的點擊操作?我想我需要使用EventDispatcher?你們能指點我到正確的方向嗎?

回答

0

你有兩個選擇,要麼你可以做,可以容納所有的信息靜態類,也可以在你的Canvas類舉行,這取決於很多其他的功能,但對純樸的緣故,我會用畫布。

使用您需要創建和監聽事件的此事件,比如你可以通過聽鼠標向上事件:

ShapeButton.addEventListener(MouseEvent.MOUSE_UP, changeShape); 

這將隨後致電changeShape功能,在這種情況下會可能會設置「刷子」形狀的變量。 我個人使用變量來保存到子畫面的參考將被畫的形狀,例如:

private var paintShape:Class; 

public function Main(){ 
    paintShape = Star; // Make a star brush 
    addEventListener(MouseEvent.MOUSE_UP, paintObject); 
    //... 
} 

private function paintObject(ev:MouseEvent){ 
    var newShape = new paintShape() as Sprite; 
    newShape.x = mouseX; 
    newShape.y = mouseY; 
    addChild(newShape); 
} 

see livedocs for an overview of Events

相關問題