Siehe auch meinen Tipp AS3 drag Movieclip
startDrag ("quader", true);
Die Filmsequenz hat den Instanznamen "quader" bekommen und die
Diese Möglichkeit gab es auch schon bei Flash 4.
Wie bei meinen anderen SWF Beispielen kann man das Actionscript
onClipEvent (enterFrame) {
startDrag ("", true, 100, 70, 500, 350);
}
Hier wird die Action StartDrag dem Movie Clip zugewiesen. Daher braucht man
keinen Instanznamen, man kann aber auch this verwenden und zwar so:
Auch hier kann man "Maus zentrieren" aktivieren, im Action Script steht dann true.
Durch anklicken von "Immer als Rechteck" kann man die Koordinaten
eines Rechtecks angeben, in dem sich die Filmsequenz bewegen darf.
Das Rechteck wird durch den xy Wert der linken oberen Ecke und
den xy Wert der linken unteren Ecke definiert. In dieser Reihen-
folge stehen die Zahlen im Actionscript. Das Prinzip wird Html Kundigen
von Image Maps bekannt sein.
startDrag (this, true, 100, 70, 500, 350);
onClipEvent (enterFrame) {
Mouse.hide();
startDrag ("", true);
}
onClipEvent (mouseDown) {
this.gotoAndStop("pressed");
}
onClipEvent (mouseUp) {
this.gotoAndStop("released");
}
on (rollOver) {
with (_root.mauszeiger) {
gotoAndStop ("warten");
}
}
on (rollOut) {
with (_root.mauszeiger) {
gotoAndStop ("released");
}
}
onClipEvent (enterFrame) {
}
Hier liegt die Aktion wieder direkt im Movieclip selber.
Die Eigenschaft _x also horizontale Position
wird mit _root._xmouse definiert.
_root (siehe Pfade.fla) bedeutet, daß die oberste Ebene also
der Hauptfilm gemeint ist und daraus die horizontale Mausposition
also _xmouse ausgelesen wird.
Das läßt sich selbstverständlich auch mit der vertikalen also der
y Position und _root._ymouse machen.
onClipEvent (enterFrame) {
_y=_root._ymouse;
_x = _x+_xmouse/6;
/:xmaus2 = _xmouse;
}
Hier haben wir es mit _xmouse ohne _root zu tun. Wie man an dem feststehendem
Die x Position lautet, die vorhandene X Position plus der Abstand zur Maus geteilt
So entsteht eine sehr dynamische Bewegung. Teile auch mal durch einen
anderen Wert und beobachte, was passiert. So kann man mit mehreren
Filmsequenzen und verschiedenen Werten eine Mausspur machen.
on (press) {
startDrag ("/drag-me");
}
on (release) {
stopDrag ();
}
Hier wurde ein Button in eine Filmsequenz mit Instanznamen drag-me eingebunden.
Auf Mausdruck wird die "drag" Action der Instanz namens drag-me gestartet.
Der Event Handler "onrelease" (Maus loslassen) beendet die die Ziehoperation mit der
Mit gedrückter Maustaste Objekt ziehen auch "drag and drop" genannt.
Movie
onClipEvent (mouseDown) {
startDrag ("");
}onClipEvent (mouseUp) {
stopDrag ();
}
onClipEvent (mouseDown) {
startDrag ("", true);
}onClipEvent (mouseUp) {
stopDrag ();
}
Irgendwo auf die Bühne klicken und mit gedrückter Maustaste ziehen.
Einziger Unterschied ist hier, daß "Maus zentrieren" aktiviert wurde, im Actionscript
onClipEvent (mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse, true))
{ startDrag ("");
}
}
onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse, true))
{ stopDrag ();
}
}
Zu diesem Beispiel muß man etwas über die Aktion "HitTest" wissen.
Hier wird die Mausposition mittels "HitTest" und einer if-Bedingung
Objekt anklicken und mit gedrückter Maustaste ziehen.
Mausklicks auf die Rechtecke öffnet die Menues, welche man am oberen Balken per drag &
on (release) {
with (menue1) {
gotoAndPlay(2);
}
_root.menue1.swapDepths( 1);
}
Der startDrag Aktion folgt der Instanzname des jeweiligen Menues.
Durch die Action swapDepths wird die z Position auf 1 gesetzt, so daß das Menue
anderen Filmsequenz angeben, mit deren z Position getauscht werden soll.
Oder man gibt folgende Action ein, (eine Position höher als die höchste Position).
_root.getNextHighestDepth()
_root.menue1.swapDepths(_root.getNextHighestDepth());