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 />

Ziehen und Ablegen in AIR<br />

4 Der NativeDragManager ändert den Mauscursor, um anzuzeigen, dass das Objekt abgelegt werden kann.<br />

5 Der Benutzer legt das Objekt über eine Komponente ab.<br />

6 Die empfangende Komponente löst ein nativeDragDrop-Ereignis aus.<br />

7 Die empfangende Komponente liest die Daten im gewünschten Format aus dem Clipboard-Objekt innerhalb des<br />

Ereignisobjekts.<br />

8 Hat die Ziehbewegung ihren Ursprung in einer AIR-Anwendung, löst das initiierende interaktive Objekt ein<br />

nativeDragComplete-Ereignis aus. Hat die Ziehbewegung ihren Ursprung außerhalb von AIR, wird keine<br />

Rückmeldung gesendet.<br />

Bestätigen des Hineinziehens<br />

Adobe AIR 1.0 und höher<br />

Wenn ein Benutzer ein Zwischenablageelement in eine visuelle Komponente hineinzieht, löst die Komponente<br />

nativeDragEnter- und nativeDragOver-Ereignisse aus. Um zu bestimmen, ob die Komponente das<br />

Zwischenablageelement akzeptieren kann, können die Prozeduren für diese Ereignisse die Eigenschaften clipboard<br />

und allowedActions dieses Ereignisobjekts überprüfen. Um zu signalisieren, dass die Komponente das abzulegende<br />

Element akzeptieren kann, muss die Ereignisprozedur die Methode NativeDragManager.acceptDragDrop()<br />

aufrufen und einen Verweis an die empfangende Komponente übergeben. Wenn mehrere registrierte Ereignis-<br />

Listener die acceptDragDrop()-Methode aufrufen, hat die letzte Prozedur in der Liste den Vorrang. Der<br />

acceptDragDrop()-Aufruf bleibt gültig, bis der Mauscursor die Grenzen des empfangenden Objekts verlässt und<br />

dabei das nativeDragExit-Ereignis auslöst.<br />

Wenn im allowedActions-Parameter, der an doDrag() übergeben wurde, mehrere Aktionen zugelassen sind, kann<br />

der Benutzer auswählen, welche der zulässigen Aktionen durchgeführt werden soll, indem er eine Zusatztaste drückt.<br />

Der Ziehmanager ändert das Cursorbild, um dem Benutzer mitzuteilen, welche Aktion ausgeführt wird, wenn er die<br />

Ziehoperation abschließt. Die beabsichtigte Aktion wird von der dropAction-Eigenschaft des NativeDragEvent-<br />

Objekts gemeldet. Die für eine Ziehbewegung eingestellte Aktion ist nur ein Vorschlag. Die an der Übertragung<br />

beteiligten Komponenten müssen das entsprechende Verhalten implementieren. Um beispielsweise eine<br />

Verschiebaktion abzuschließen, würde die Ursprungsanwendung (der Ziehinitiator) das gezogene Element wohl<br />

entfernen und das Ablageziel würde es hinzufügen.<br />

Die Zielanwendung kann die Ablegaktion auf drei mögliche Aktionen begrenzen, indem sie die dropAction-<br />

Eigenschaft der NativeDragManager-Klasse setzt. Wenn ein Benutzer versucht, über die Tastatur eine andere Aktion<br />

zu wählen, zeigt der NativeDragManager den Nicht-verfügbar-Cursor an. Setzen Sie die Eigenschaft dropAction in<br />

den Prozeduren, und zwar sowohl für das Ereignis nativeDragEnter als auch für das Ereignis nativeDragOver.<br />

Das folgende Beispiel präsentiert eine Ereignisprozedur für ein nativeDragEnter- oder nativeDragOver-Ereignis.<br />

Diese Prozedur akzeptiert eine Hineinziehbewegung, wenn die gezogene Zwischenablage Daten im Textformat<br />

enthält.<br />

import flash.desktop.NativeDragManager;<br />

import flash.events.NativeDragEvent;<br />

public function onDragIn(event:NativeDragEvent):void{<br />

NativeDragManager.dropAction = NativeDragActions.MOVE;<br />

if(event.clipboard.hasFormat(ClipboardFormats.TEXT_FORMAT)){<br />

NativeDragManager.acceptDragDrop(this); //'this' is the receiving component<br />

}<br />

}<br />

Letzte Aktualisierung 27.6.2012<br />

651

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

Saved successfully!

Ooh no, something went wrong!