Drag & Drop

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Wechseln zu:Navigation, Suche

Dieser Artikel wird derzeit von einem Autor gründlich bearbeitet. Die Inhalte sind daher evtl. noch inkonsistent.

1 Definition

Drag: ist englisch und bedeutet "ziehen" Drop: ist englisch und bedeutet "loslassen" Drag and Drop beschreibt somit das Ziehen und Loslassen grafischer Elementen auf dem Bildschirm. Zum Steuern dieser Befehle werden die Tasten der Maus verwendet.

2 Bemerkungen

In der heutigen Computerwelt ist die Drag- and Drop-Funktion nicht mehr weg zu denken. Ob Dateien von einem Ordner in einen anderen verschoben werden sollen oder beim Arbeiten in Layout- oder Bildbearbeitungsprogrammen, keiner möchte mehr die praktische, intuitive Bearbeitungsmethode missen.

3 Anwendung

Die folgenden Angaben beziehen sich auf ActionScript 2. In Flash wird einem diese Implementierung so gut es geht vereinfacht. Eine Reihe von vorgefertigten Befehlen ist äußerst hilfreich zum realisieren eines Drag and Drop fähigen Programms. Zu aller erst werden die beiden Methoden "onPress()" und "onRelease()" gebraucht, die vom System automatisch beim Klicken bzw. beim Loslassen eines Buttons aufgerufen werden. Voraussetzung ist allerdings, dass der Button ein Objekt einer MovieClip-Klasse oder einem Abkömmling davon angehört. Weiterhin benötigt man die Methoden "startDrag()", das den Verschieben-Vorgang beginnen lässt, und "stopDrag()", das ihn wieder beendet. Beide Methoden sind ebenfalls von Flash vorgegeben. Da ein MovieClip intuitiverweise beim Drücken der Maustaste "aufgepickt" werden soll muss "startDrag()" in den Methodenrumpf der "onPress()"-Methode geschrieben werden. Genauso wird mit der "stopDrag()"-Methode verfahren, die dann also in den Abarbeitungsblock der "onRelease()"-Methode geschrieben wird und somit das Verschieben an der momentanen Position stoppt d.h. der Clip wird wieder frei gegeben.

4 Methoden

onPress() = function () {}
  • Verfügbar: ActionScript 1, FlashPlayer 6
  • wird beim Klicken selbstständig aufgerufen wenn auf eine Schaltfläche geklickt wird
  • der Methode muss eine Funktion zugewiesen werden, die abgearbeitet werden soll
onRelease() = function () {}
  • Verfügbar: ActionScript 1, FlashPlayer 6
  • wird ebenfalls vom System eigenständig aufgerufen, wenn die Maustaste bzw. der Button auf der grafischen Oberfläche losgelassen wird
  • es muss eine Funktion definiert werden, die angibt was abgearbeitet werden soll
startDrag() : Void
  • Verfügbar: ActionScript 1, FlashPlayer 4
  • "hängt" den MovieClip an den Mauszeiger
  • es kann immer nur ein MovieClip gezogen werden
  • Clip wird bis zum deaktivieren durch "stopDrag()" gezogen
stopDrag(): Void
  • Verfügbar: ActionScript 1, FlashPlayer 4
  • gibt den Clip an der aktuellen Mausposition wieder frei

5 Beispiel

Im Folgenden wird eine Klasse implementiert deren Objekte per Drag and Drop verschoben werden können.

class mc extends MovieClip
{
    public function onPress ()
    {
	this.startDrag();
    }

    public function onRelease()
    {
	this.stopDrag();	
    }

    public function mc ()
    {
	super();
    }
}

6 Hinweis

Falls es gewünscht ist, dass der MovieClip nur an einer bestimmten Stelle positioniert werden kann, muss zusätzlich eine Drop-Zone erstellen werden. Dieser wird dann zusammen mit dem zu platzierenden MovieClip einer Kollisionserkennung unterzogen, durch den abgeglichen wird ob sich der Clip über dem ausgewählten Bereich befindet.

7 Quellen