2013-07-31 54 views
0

我是AS3的初學者,所以請儘可能給點noob作爲答案。我想有一個被點擊創建一個行特定的按鈕,比如我按一下按鈕,然後我需要在舞臺上驗證IF條件始終爲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

會發生什麼?你有痕跡嗎?或者點擊事件不起作用? – putvande

回答

0

您正在分配j = 0在點擊處理程序中......您應該在drawLn中執行此操作。此外,您只需要一個j ++的點擊處理程序。

但一個更清潔的方法將是有兩個點擊監聽器point1ClickListenerpoint2ClickListener。您應該在drawLn附加point1ClickListener。然後在point1ClickListener裏面刪除監聽點擊point1ClickListener並附加一個點擊監聽器point2ClickListener。再次,當point2ClickListener被調用刪除監聽點擊point2ClickListner