0

我是 AS3 的初学者,所以如果可能的话,请给一个菜鸟一个点作为答案。我想要一个特定的按钮被点击来创建一条线,例如我点击按钮然后我需要在舞台上点击两次

  • 我点击它,它被选中
  • 我在舞台上第一次点击选择线的起点
  • 我在舞台上第二次单击以选择终点。

我试图做到这一点,但我无法做到,如果可能,请帮助我。这是我写的代码

dr_line.addEventListener(MouseEvent.CLICK,drawln);
var test:Boolean;

function drawln(e:MouseEvent):void{
    test=true;
    stage.addEventListener(MouseEvent.CLICK,reportClick);   
}

var sx,sy,fx,fy:int;
var j:int;
function reportClick(event:MouseEvent):void 
{
    j=0;
    j++;

    if (test==true && j==1) {
        sx=event.localX;
        sy=event.localY;    
    }
    j++;
    test=true;
    trace(j);
    trace(test);
    if (test==true && j==2) {
        fx=event.localX;
        fy=event.localY;
        j=0;
        test=false;
        var  line:Shape = new Shape();
        line.graphics.beginFill(0x00FF00);
        line.graphics.moveTo(sx,sy);
        line.graphics.lineTo(fx,fy);

        this.addChild(line);    
    }
}

我该怎么做才能使它起作用..请帮助我,谢谢!!!!,是的,应该始终检查功能reportClick....但是我无法启动它,或者当我按下dr_line按钮时它应该处于活动状态,因此它将被检查....

4

1 回答 1

0

您在单击处理程序中分配 j=0 ...您应该在 drawLn 中执行此操作。此外,您在点击处理程序中只需要一个 j++。

但更简洁的方法是有两个点击监听器point1ClickListenerpoint2ClickListener. 您应该附加到point1ClickListenerin drawLn。然后在里面point1ClickListener删除监听点击point1ClickListener并附加一个点击监听器point2ClickListener。同样,当point2ClickListener被调用时删除监听点击point2ClickListner

于 2013-07-31T16:18:26.933 回答