Actionscript 3, drehen Objekt ziehen
Habe ich ein Objekt brauche ich, um zu drehen, durch klicken und ziehen. Nach einigen AS2-code bekam ich das Objekt zu drehen, ein bisschen jedes mal, wenn die Maus geklickt wird, aber nicht bekommen kann es arbeiten mit ziehen.
needle.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag_2);
stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop_2);
function fl_ClickToDrag_2(event:MouseEvent):void
{
var angle = Math.atan2(mouseY-needle.y,mouseX-needle.x);
//apply rotation to handle by converting angle into degrees
needle.rotation = angle*180/Math.PI;
//rotate the grip opposite the handle so it won't rotate along with it
//this.grip._rotation = -this._rotation;
}
function fl_ReleaseToDrop_2(event:MouseEvent):void
{
needle.stopDrag();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut das problem, das ich sehe, ist, dass die
MOUSE_DOWN
- Ereignis wird nur ausgelöst, sobald pro Klick, so dass Sie nur ausführen, den code in der Prozedur einmal.Könnte es einen besseren Weg, als dies, aber dies ist, wie ich halten, es zu tun:
BEARBEITET FÜR DETAIL:
So, wenn der Benutzer nach unten (
mouseDown
) es wird ein Ereignis-listener feuert dierotate
- handler jedes mal, wenn die Maus bewegt wird. Wenn der Benutzer können Sie die klicken Sie auf der Ereignis-listener wird zerstört. Diefalse,0,true);
beim hinzufügen wird der Ereignis-listener, um es ein schwach referenziert Zuhörer so, es wird gesammelt, indem der garbage collector und nicht einfach sitzen im Speicher Platz wegnimmt, für immer.