たとえば、すべての startDrag() および stopDrag() イベントを処理するクラスを作成するにはどうすればよいですか? このクラスには MovieClip はありません。このクラスを、複数のクラスで使用されるイベントのハンドラーとしてのみ機能させたいと考えています。
私はゲームを作成しており、ドラッグ アンド ドロップできるアイテムがたくさんあります。このコードをすべてのアイテム クラスに配置するのではなく、より効率的な方法が必要です。
これを行う他の方法はありますか?現在、これをドラッグ アンド ドロップできるすべてのクラスにコピー アンド ペーストする必要があります。
public function Weapon1()
{
originalPosition = new Point(x,y);
addEventListener(Event.ENTER_FRAME, onEntrance);
}
public function onEntrance(evt:Event)
{
addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
addEventListener(MouseEvent.MOUSE_UP, mouseup);
}
public function mousedown(evt:MouseEvent)
{
startDrag(true);
}
public function mouseup(evt:MouseEvent)
{
stopDrag();
if(dropTarget)
{
if(dropTarget.parent.name == "slot")
{
this.x = dropTarget.parent.x;
this.y = dropTarget.parent.y;
}
}
else
{
returnToPosition();
}
}
else
{
returnToNewPosition();
}
}
public function returnToPosition()
{
x = originalPosition.x;
y = originalPosition.y;
}
public function returnToNewPosition()
{
x = newPosition.x;
y = newPosition.y;
}