我正在学习一本书中 Actionscript 教室的第 4 课示例,但通过在舞台上添加一个 CLEAR 按钮来修改它。
每当我测试所有功能时,我都可以在按钮顶部进行绘制。理想情况下,当用户绘制时,颜色应该位于按钮下方。
在时间轴中,我有背景层、按钮层和动作层。我在下面添加了代码以帮助更快地解决问题。谢谢!
package {
import flash.display.MovieClip;
public class Ellipse extends MovieClip {
// constructor
public function Ellipse(w:Number=40,h:Number=40,color:Number=0xff0000) {
graphics.beginFill(color);
graphics.drawEllipse(0, 0, w, h);
graphics.endFill();
}
} // end class Ellipse
} // end package
import flash.events.MouseEvent;
var color:Number;
stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing);
stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing);
function startDrawing(e:MouseEvent):void {
stage.addEventListener(MouseEvent.MOUSE_MOVE, makeShapes);
color = Math.random() * 0xFFFFFF;
}
function stopDrawing(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_MOVE, makeShapes);
}
function makeShapes(e:MouseEvent):void {
var ellipse:Ellipse = new Ellipse(10, 10, color);
stage.addChild(ellipse);
ellipse.x = mouseX;
ellipse.y = mouseY;
}
btnClear.addEventListener(MouseEvent.CLICK, clearBoard);
function clearBoard(e:MouseEvent)
{
for (var i:int = stage.numChildren-1; i >= 1; i--) {
stage.removeChildAt (i);
}
}