2
我的代码是在这里:从对象画线鼠标(AS3)
graphics.clear();
graphics.lineStyle(1, 0, 1);
graphics.moveTo(cannon.x, cannon.y);
graphics.lineTo(mouseX, mouseY);
它似乎并没有被画任何东西。 顺便说一下,它现在在ENTER_FRAME中。
我的代码是在这里:从对象画线鼠标(AS3)
graphics.clear();
graphics.lineStyle(1, 0, 1);
graphics.moveTo(cannon.x, cannon.y);
graphics.lineTo(mouseX, mouseY);
它似乎并没有被画任何东西。 顺便说一下,它现在在ENTER_FRAME中。
参考下面的代码。这是我简单的代码绘制应用程序。并粘贴以下代码:
startX
和startY
应该改为您的对象(cannon
)。
如果你想删除以前的行。在onDrawReady
处理程序中调用this.graphics.clear();
。
var isDrawingReady:Boolean;
var startX:Number, startY:Number;
stage.addEventListener(MouseEvent.MOUSE_DOWN, onDrawReady);
stage.addEventListener(MouseEvent.MOUSE_UP, onDrawStop);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onDraw);
function onDrawReady(e:MouseEvent):void
{
startX = e.stageX;
startY = e.stageY;
isDrawingReady = true;
}
function onDraw(e:MouseEvent):void
{
if(isDrawingReady)
{
this.graphics.lineStyle(2,0xff0000);
this.graphics.moveTo(startX,startY);
this.graphics.lineTo(e.stageX,e.stageY);
startX = e.stageX;
startY = e.stageY;
}
e.updateAfterEvent();
}
function onDrawStop(e:MouseEvent):void
{
isDrawingReady = false;
}
如果你想永远当鼠标移动画线。尝试如下:
var startX:Number, startY:Number;
stage.addEventListener(MouseEvent.MOUSE_MOVE, onDraw);
function onDraw(e:MouseEvent):void
{
this.graphics.lineStyle(2,0xff0000);
this.graphics.moveTo(startX,startY);
this.graphics.lineTo(e.stageX,e.stageY);
startX = e.stageX;
startY = e.stageY;
e.updateAfterEvent();
}
我希望它总是绘制,就像每当我移动我的鼠标绘制一条线。如果还不清楚,请告诉我。 – user2101341 2013-02-23 01:37:17
我编辑过。请检查。 – 2013-02-23 01:42:15
工作,谢谢。 – user2101341 2013-02-23 01:50:21