我是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按钮它应该是活动的,所以它将被检查....
答案 0 :(得分:0)
您在点击处理程序中指定j = 0 ...您应该在drawLn中执行此操作。此外,在单击处理程序中只需要一个j ++。
但更简洁的做法是拥有两个点击监听器point1ClickListener
和point2ClickListener
。您应该附加到point1ClickListener
中的drawLn
。然后在point1ClickListener
内删除对point1ClickListener
的收听点击,并附加point2ClickListener
的点击监听器。同样,当point2ClickListener
被调用时,请删除对point2ClickListner
点击的聆听。