Was macht dieses Action Script ?

eDreamer

Erfahrenes Mitglied
Hi Flashperten,

ich hab da mal ne Bitte. Ich hab mir bei Flashkit eine Autorendatei gezogen und versucht sie zu verstehen, alles kein Problem bis auf nen Bisschen Action Script, welches am Ende dummerweise für den Effekt sorge trägt :(

Hier das Beispiel

In der Schaltfäche (Hand) zum bewegen des Fensters steht folgender Code :
__________________________________________

on (press) {
_root.top += 1; //1
this.swapdepths(_root.top); //2
startDrag("_root.textmenu"); //3
}
on (release) {
stopDrag();
}
__________________________________________

Was ich nicht verstehe sind die 3 markierten Zeilen.

_root.top +=1; Ist das "top" eine Methode oder eine Variable, letztere die sich auf der Haupzeitleiste befindet ? Wird damit "top" um eins hoch gesetzt, eine Höhenstufe höher ?

Was muss ich mir bei der Zeile "this.swapdepths(_root.top);" vorstellen, ist "swapdepths" eine Mothode oder eine Varialble ?

Und zum letzten, was ich glaube schon raffe :-) , wieso wird da das "_root.textmenu" in "" geschrieben und bei "_root.top" genau darüber ohne "" ? Leitet man damit nicht eigentlich einen String ein ?

THX 4 Help
 
zu Letzterem:
swapDepths()
Methode; vertauscht die Stapel- bzw. z-Reihenfolge (Tiefenebene) der angegebenen Instanz (meinMovieclip) durch den im Parameter ziel angegebenen Film oder den Film, der gegenwärtig die im Parameter tiefe angegebene Stufe belegt. Beiden Filmen muss derselbe Movieclip übergeordnet sein. Das Wechseln der Tiefenebenen von Movieclips hat zur Folge, dass ein Film an die Position vor oder hinter dem anderen Film verschoben wird. Wenn sich ein Film beim Aufruf dieser Methode in einem Tweening-Vorgang befindet, wird der Tweening-Vorgang gestoppt.

Die Variable top legt fest, welche Ebene "oben liegt". Wenn man drückt wird diese 1 gesetzt. Die fläche kommt also nach oben.
StartDrag/StopDrag ist für die "Verschiebbarkeit", d.h. du klickst (hältst gedrückt) und kannst das Fenster verschieben, wenn du loslässt, legst du's ab.
 
passt schon aber _root.top wird nicht 1 gesetzt, sondern um eins höher gesetzt. nur deswegen wird der MC der gedrückt wird auch immer in den vordergrund gehoben, denn jedes mal wirds dann mit swapDepth() wie gesagt um _root.top "erhöht"..

*sancho*
 
Zuletzt bearbeitet:
WoW danke schön,

das war echt gut erklärt, aber nochwas "this.swapdepths(_root.top);"
das "this" bezieht sich nicht auf die Hauptzeitleiste oder ? Bezieht es es auf die Movie Clip Instanz in dessen Bild ich das AS schreibe ?
 
@ sancho

Ist "top" eine Variable die durch "_root" auf der Hauptzeitleiste liegt ? Und wird theoretisch die Zahl in top, wenn es eine Variable ist immer größer, je öffter man das Fenster zum Verschieben anklickt ?
 
das "this" bezieht sich in dem fall immer auf den MC bei dem auf den verschiebe button gedrückt wird.

top IST eine variable, und sie wird immer größer je öfter man auf einen der beiden schiebe-buttons drückt. das fenster bei dem man auf den button drückt ruft ds script auf, das "this" bezieht sich dann auf dieses fenster, und die variable wird höher gesetzt. da die anderen fenster vorher auch die depth _root.top hatten, diese variabel nun aber größer ist als je zuvor, wird das fenster bei dem man auf den button gedrückt hat in den absoluten vordergrund gehoben.

ich hoffe das war jetzt irgendwie erhellend weil ich langsam selbst nicht mehr weis wie ich es noch erklären soll :-)

*sancho*
 
:)

Ich will ja auch nicht zu dumm rüber kommen, nein nein du hast jetzt ebend nur das bestätigt was ich angenommen habe, ich wollt nur mal sicher gehen und das von jemanden hören der Ahnung davon hat ... ich bin kein Coding noob :p Danke
 
@sancho
das 'this' in einem button-script ist ja seit mx eine witzige sache. mm musste ja aufgrund des neuen event-handler models einige komprommisse eingehen.

seit mx sind ja auch buttons objekte, deshalb ergibt der folgende
code auf einen button gelegt

on(press){
trace(this);
}

>>> levelO

aber:

on(press){
trace (this);
}

auf einem mc ergibt
_level0.my_btn


// was imho nicht logisch ist (weil der Button ja wie ein mc ein objekt geworden ist) aber aus gründen der rückwärtskompatibilität so gehalten werden musste. Sorry für diesen einschub, ist mir aber auch gerade jetzt aufgefallen.

gruss skyla
 

Neue Beiträge

Zurück