2017-05-31 131 views
0

我已經在AS3代碼(AIR)中製作了這個小遊戲,用戶可以在其中拖放星星。 目的是在每個區域放置一定數量的恆星。計算特定區域中的多少實例(AS3代碼)

我該如何計算用戶放入某個區域的恆星數量?

在舞臺上我有:area1area2area3

star1star2,...到star10

這裏是我到目前爲止的代碼:

功能dragObject (e:MouseEvent):void { getPosition(e.target);

 e.target.startDrag(true); 
    } 



     function stopDragObject(e:MouseEvent):void 
      { 
      if (e.target.name == "area1" && 
    //I think I should put something here to say area1 has been hit 4 times (hitTestObject for example ?)){ 
    trace("Sucess"); 
} 

有什麼建議嗎?

編輯

我想類似的東西可能:

  function stopDragObject(e:MouseEvent):void{ 

      if (e.target && e.target.hitTestObject(getChildByName("area1"))){ 

     e.target.stopDrag(); 
     count++; 

     } 
      else{ 
      e.target.stopDrag(); 
     } 
    } 

所以現在,當我把一個實例中area1,它是加 「1」。 但是,如何從area 1中刪除實例,並告訴它在從area 1中刪除時執行count--

回答

1

我想,你應該嘗試這個計數 - 當你拖動對象和計數++的區域。

function dragObject(e:MouseEvent):void 
{ 
    getPosition(e.target); 
    e.target.startDrag(true); 
    count--; 
} 


function stopDragObject(e:MouseEvent):void 
{ 
    if (e.target && e.target.hitTestObject(getChildByName("area1"))) 
    { 
     e.target.stopDrag(); 
     count++; 
    } 
    else 
    { 
     e.target.stopDrag(); 
    } 
} 

我不確定,但可能會有效。

+0

嗯我不知道它會工作。在開始時承認'count = 0'。然後用戶將抓住對象並開始拖動它,'count = -1'。然後用戶將把它放在對象'count = 0'上。或者,也許我沒有看到這件事......? – Steph

+0

然後檢查當您開始拖動時是否(count> 0){count - }。 –

+0

「area1」,「area2」等有更多的對象嗎?感謝星星? – 3vilguy