0

それぞれが果物に関連付けられているいくつかのボールがあります。誰かがボールを関連するフルーツにドラッグすると、アクションが呼び出されます (この場合は「ヒット フルーツ」をトレースします)。現時点では、これを検出していません。

偶数リスナーをステージに追加して、これがいつ行われたかを検出できることがわかりましたが、問題は、それぞれに複数の果物を持つ複数のボールがあることです。誰かが私がこれを行う方法を教えてもらえますか?

私は PHP/Javascript の経験があり、AS3 に関しては初心者です。

ball1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
ball1.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);


function mouseUpHandler(e:MouseEvent):void {
   var obj = e.target;

   if (e.target.hitTestObject("fruit1")) {
    trace('hit fruit1');
   } else {

   trace('Not hit fruit');
   } 

   obj.stopDrag();

}
4

1 に答える 1

1

配列を使用してすべての果物を格納し、ループを使用してドラッグ アンド ドロップされているボールをテストできます。

var fruitArray:Array = new Array();
fruitArray.push(fruit1);
fruitArray.push(fruit2);
fruitArray.push(fruit3);

function onMouseUp(e:MouseEvent) : void
{
  for(var j=0; j<fruitArray.length; j++) { // Every piece of fruit is tested..
        if(e.target.hitTestObject(fruitArray[j])) { // ..against the ball being dragged
          trace("hit fruit:", fruitArray[j]);
        }
  }
}

同様の for ループ システムを使用して、最初にボールにイベント リスナーを追加する必要があります。また、果物をさまざまな種類の小さな配列に分割し、特定の果物配列に対してのみボールをチェックすることで遊ぶことができます。

于 2012-11-22T14:19:10.363 に答える