我正在使用纯ActionScript 3.0编写一个类似Flash的简单程序的MS Paint
我有以下课程
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 :(得分:0)
你有两个选择,要么你可以制作一个可以容纳所有信息的静态类,要么它可以保存在你的画布类中,它很大程度上取决于其他功能,但为了简单起见,我会使用画布。
使用您需要创建和监听事件的EventDispatcher,例如,您可以使用以下方式收听鼠标注册事件:
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);
}