在图形圆上增加尺寸
Increasing size on a graphic circle
我目前正在尝试通过单击鼠标使用 graphics.linestyle 和 graphics.drawCircle 制作一个圆圈。单击鼠标后,我希望圆形在舞台上扩大,直到半径达到 150。我已经尝试使用此代码,但无法正常工作。
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.events.Event;
var circle:Sprite = new Sprite();
knapp.addEventListener(MouseEvent.CLICK, push);
function push (evt:MouseEvent) {
var radius:Number = 10;
var incRadius:Number = 3;
circle.graphics.lineStyle(3, 0xff000, 1);
circle.graphics.drawCircle(200, 200, radius);
addChild(circle);
circle.addEventListener(Event.ENTER_FRAME, increase);
function increase (evt:Event) {
if (radius <= 150) {
radius += incRadius;
}
}
}
- 将嵌套函数弹出到全局命名空间中。
- 使循环变量成为全局变量。
- 增加
radius
后,需要重画圆
- 因为你只是画边,每次更新都需要清除圆圈
- 动画完成时删除了未使用的事件侦听器。
这将解决它。你可以 运行 它在一个空白项目中,它会编译和工作。只需单击背景上的任意位置,它就会 运行.
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.events.Event;
var circle:Sprite = new Sprite();
addChild(circle);
var radius:Number = 10;
var incRadius:Number = 3;
stage.addEventListener(MouseEvent.CLICK, push);
function push(e:MouseEvent) {
radius = 10;
circle.graphics.clear();
circle.graphics.lineStyle(3, 0xff000, 1);
circle.graphics.drawCircle(0, 0, radius);
circle.x = stage.mouseX;
circle.y = stage.mouseY;
circle.addEventListener(Event.ENTER_FRAME, increase);
}
function increase(e:Event) {
radius += incRadius;
if (radius > 150) {
circle.removeEventListener(Event.ENTER_FRAME, increase);
} else {
circle.graphics.clear();
circle.graphics.lineStyle(3, 0xff000, 1);
circle.graphics.drawCircle(0, 0, radius);
}
}
我目前正在尝试通过单击鼠标使用 graphics.linestyle 和 graphics.drawCircle 制作一个圆圈。单击鼠标后,我希望圆形在舞台上扩大,直到半径达到 150。我已经尝试使用此代码,但无法正常工作。
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.events.Event;
var circle:Sprite = new Sprite();
knapp.addEventListener(MouseEvent.CLICK, push);
function push (evt:MouseEvent) {
var radius:Number = 10;
var incRadius:Number = 3;
circle.graphics.lineStyle(3, 0xff000, 1);
circle.graphics.drawCircle(200, 200, radius);
addChild(circle);
circle.addEventListener(Event.ENTER_FRAME, increase);
function increase (evt:Event) {
if (radius <= 150) {
radius += incRadius;
}
}
}
- 将嵌套函数弹出到全局命名空间中。
- 使循环变量成为全局变量。
- 增加
radius
后,需要重画圆 - 因为你只是画边,每次更新都需要清除圆圈
- 动画完成时删除了未使用的事件侦听器。
这将解决它。你可以 运行 它在一个空白项目中,它会编译和工作。只需单击背景上的任意位置,它就会 运行.
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.events.Event;
var circle:Sprite = new Sprite();
addChild(circle);
var radius:Number = 10;
var incRadius:Number = 3;
stage.addEventListener(MouseEvent.CLICK, push);
function push(e:MouseEvent) {
radius = 10;
circle.graphics.clear();
circle.graphics.lineStyle(3, 0xff000, 1);
circle.graphics.drawCircle(0, 0, radius);
circle.x = stage.mouseX;
circle.y = stage.mouseY;
circle.addEventListener(Event.ENTER_FRAME, increase);
}
function increase(e:Event) {
radius += incRadius;
if (radius > 150) {
circle.removeEventListener(Event.ENTER_FRAME, increase);
} else {
circle.graphics.clear();
circle.graphics.lineStyle(3, 0xff000, 1);
circle.graphics.drawCircle(0, 0, radius);
}
}