0

これが私のコードです:

package net.draganddrop
{
import flash.display.MovieClip;
import flash.event.MouseEvent;

public function object extends MovieClip
{
public function object()
{
buttonMode = true;
addEventListener(MouseEvent.MOUSE_DOWN, down);
}
protected function down(event:MouseEvent):void
{
parent.addChild(this);// I HAVE A PROBLEM WITH THIS CODE
startDrag();
}
}
}

コードparent.addChild(this); オブジェクトを他のオブジェクトの上に移動するように、オブジェクトを他のオブジェクトの上に作成することを想定していますが、そのコードを配置してドラッグを開始すると、ドラッグした回数だけオブジェクトが複製されます。オブジェクトをドラッグしたときに他のオブジェクトの前にオブジェクトを作成できる他のコードは知りません。助けてください!

4

2 に答える 2

0

試す :

parent.setChildIndex(this,parent.numChildren-1);

また

parent.addChildAt(this,parent.numChildren-1);
于 2012-08-05T00:23:28.457 に答える
0

私が理解しているように、オブジェクト自体が複製され、すべてのオブジェクトをドラッグしています。ですから、より良い説明をお願いします。それが stopDrag を使用しなければならない問題である場合は、ボタンを押すと startDrag メソッドが開始されますが、ボタンを離しても実行されます。

それを止めるには、いくつかの小さなコードを追加する必要があるので、ここにあります。

また、次のようにする必要があります。

public クラス object extends MovieClip ではなく public function object extends MovieClip

このコードを試してください:

package net.draganddrop
{
     import flash.display.MovieClip;
     import flash.event.MouseEvent;

     public class object extends MovieClip
     {
         public function object()
         {
             buttonMode = true;
             addEventListener(MouseEvent.MOUSE_DOWN, down);
             addEventListener(MouseEvent.MOUSE_UP, up);
         }
         protected function up(event:MouseEvent):void
         {
             stopDrag();
         }
         protected function down(event:MouseEvent):void
         {
             parent.addChild(this);
              startDrag();
         }
     }
}
于 2012-08-05T15:35:01.563 に答える