从对象到鼠标画线(AS3) [英] Draw line from object to Mouse (AS3)

查看:96
本文介绍了从对象到鼠标画线(AS3)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码在这里:

        graphics.clear();
        graphics.lineStyle(1, 0, 1);
        graphics.moveTo(cannon.x, cannon.y);
        graphics.lineTo(mouseX, mouseY);

它似乎没有画任何东西. 顺便说一句,它现在在ENTER_FRAME中.

It doesn't seem to be drawing anything. BTW it's in ENTER_FRAME right now.

推荐答案

请参考以下代码.这是我简单的代码绘制应用程序.并粘贴以下代码:

refer a following code. this is my simple code draw app. And paste the code below:

startXstartY应该改为您的对象(cannon).

startX and startY should instead changes to the your object(cannon).

如果要删除前一行.在onDrawReady处理程序上调用this.graphics.clear();.

If you want remove prior line. call a this.graphics.clear(); at onDrawReady Handler.

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;
}

编辑

如果要始终在鼠标移动时画线.尝试如下:

EDIT

If you want always draw line when mouse move. tried as follows:

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();
}

这篇关于从对象到鼠标画线(AS3)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆