15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Programmieren von Anzeigeobjekten<br />

Neben dem Effekt, dass ein Anzeigeobjekt dem Mauszeiger folgt, ist es oft empfehlenswert, das gezogene Objekt in den<br />

Vordergrund der Anzeige zu stellen, sodass es schwebend vor allen anderen Objekten angezeigt wird. Angenommen,<br />

Sie haben zwei Objekte, die beide mit der Maus verschoben werden können: einen Kreis und ein Quadrat. Wenn sich<br />

der Kreis in der Anzeigeliste unter dem Quadrat befindet und Sie den Kreis klicken und ziehen, sodass sich der<br />

Mauszeiger über dem Quadrat befindet, scheint sich der Kreis hinter das Quadrat zu schieben, wodurch der Ziehenund-Ablegen-Eindruck<br />

unterbrochen wird. Stattdessen können Sie es so einrichten, dass der Kreis nach dem Klicken<br />

an die Spitze der Anzeigeliste verschoben wird und somit immer im Vordergrund vor allen anderen Objekten<br />

angezeigt wird.<br />

Mit dem folgenden Code (der aus dem vorigen Beispiel übernommen und angepasst wurde) können zwei<br />

Anzeigeobjekte, ein Kreis und ein Quadrat, mit der Maus verschoben werden. Wenn die Maustaste über einem dieser<br />

Objekte gedrückt wird, wandert dieses Objekt an die Spitze der Anzeigeliste der Bühne, sodass es während des Ziehens<br />

immer im Vordergrund angezeigt wird. (Im Vergleich zum vorangegangenen Codebeispiel neuer oder geänderter<br />

Code wird fett angezeigt.)<br />

// This code creates a drag-and-drop interaction using the mouse-following<br />

// technique.<br />

// circle and square are DisplayObjects (e.g. MovieClip or Sprite<br />

// instances).<br />

import flash.display.DisplayObject;<br />

import flash.events.MouseEvent;<br />

var offsetX:Number;<br />

var offsetY:Number;<br />

var draggedObject:DisplayObject;<br />

// This function is called when the mouse button is pressed.<br />

function startDragging(event:MouseEvent):void<br />

{<br />

// remember which object is being dragged<br />

draggedObject = DisplayObject(event.target);<br />

}<br />

// Record the difference (offset) between where the cursor was when<br />

// the mouse button was pressed and the x, y coordinate of the<br />

// dragged object when the mouse button was pressed.<br />

offsetX = event.stageX - draggedObject.x;<br />

offsetY = event.stageY - draggedObject.y;<br />

// move the selected object to the top of the display list<br />

stage.addChild(draggedObject);<br />

// Tell Flash Player to start listening for the mouseMove event.<br />

stage.addEventListener(MouseEvent.MOUSE_MOVE, dragObject);<br />

// This function is called when the mouse button is released.<br />

function stopDragging(event:MouseEvent):void<br />

{<br />

// Tell Flash Player to stop listening for the mouseMove event.<br />

stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragObject);<br />

}<br />

Letzte Aktualisierung 27.6.2012<br />

189

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!