| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| FlashFreak ;-) Registriert seit: Jun 2002 Ort: Berlin
Beiträge: 102
|
Also angenommen ich erstelle zuerst dynmisch mit Attachmovie 10 Movieclips die Buttons enthalten nacheinander in einer while-Schleife. Jeder hat den Namen button1, button2 u.s.w. nun will ich das jeder Button aber was anderes macht. und zwar so: die 10 Movieclips enthalten ja alle einen Button mit einem Script: on(release) { gotoandstop(X); } if( dieser_movieclip_instanzname = button1) x = 45; if( dieser_movieclip_instanzname = button2) x = 23 if( dieser_movieclip_instanzname = button3) x = 62 u.s.w. ------------------- Ist es möglich den instantznamen eines Movieclips in dem man sich befindet rauszufinden? Oder hat jemand eine andere/bessere Lösung? Also ich habe per AttachMovie ein beliebige Anzahl Buttons erstellt. Und alle sollen ein anderes Actionskript ausführen. |
| | |
| | #2 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
| PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #3 (permalink) |
| FlashFreak ;-) Registriert seit: Jun 2002 Ort: Berlin
Beiträge: 102
|
Vielen Dank für die schnelle Hilfe - habs grad in einem Testfilm ausprobiert und es funktioniert auch Allerdings sind mir einige Sachen aus dem Actionscript unklar. Ich bin aber daran interessiert alles zu verstehen. Daher mein klärungsbedarf ![]() >>var zahlenArray = [44, 55, 63, 29, 99, 77, 25, 87, 14, 97]; Zahlenarray wird erstellt. >>for (i=0; i<zahlenArray.length; i++) { FOR-Schleife für die Länge des Arrays. >>this.attachMovie("mc", "mc"+i, i, {_x 50*i)+25, _y:50});Movieclip "mc" wird hinzugefügt mit festem y-Wert und einem sich verschiebenen x-wert. >> this["mc"+i].i = i; Diese Zeile ist mir absolut ein Rätsel ![]() Also es geht um den gerade erstellen Movieclip. Und man weisst ihm den aktuellen Zähler "i" zu. Aber - WAS IST .i (punkt i ) ??? >> this["mc"+i].onPress = function() { dem aktuellen Movieclip wird die Eigenschaft(?) onPress hinzugefügt - und diese Eigenschaft wird als Funktion deklariert. (?) >> var x = zahlenArray[this.i]; Der Variable X wird der Inhalt des Zahlenarrays an der stelle "i" hinzugefügt. Was ich hierran nicht verstehe. Wieso in dem Fall ein "this" vor dem i sein muss. Ohne "this" gibts ein "undifined". >>trace(x); >>trace(this._name); >> }; >>} der rest ist ja klar.. |
| | |
| | #4 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Man speichert in dem durchlauf der "for" schleife für jeden Clip respt. button seinen "i"-wert, damit verpasst Du im sowas wie eine "ID" und damit lassen sich easy Tabellen ansteuern ![]() Nachtrag, hatte ich noch vergessen, mit "this.i" frägst die gespeicherten "i" ab
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" Geändert von RustyCake (15-06-2004 um 22:52 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Apr 2004
Beiträge: 38
| Code: >> this["mc"+i].i = i; Diese Zeile ist mir absolut ein Rätsel Also es geht um den gerade erstellen Movieclip. Und man weisst ihm den aktuellen Zähler "i" zu. Aber - WAS IST .i (punkt i ) ??? this["mc"+i].counter = i; Bleibt man bei dem Namen "i" für das Attribut, so speichert das Objekt im Attribut i den Wert des Zählers aus der for-schleife. Wird nun die onPress-Funktion des Objektes aufgerufen, "weiß es" anhand des Wertes von this.i auf welchen Eintrag es im Array zahlenArray zugreifen muss. Ich hoffe das ist jetzt nicht zu verwirrend und hilft weiter .
|
| | |
| | #6 (permalink) |
| FlashFreak ;-) Registriert seit: Jun 2002 Ort: Berlin
Beiträge: 102
|
Also habs mir grad nochmal durch den Kopf gehen lassen und was ausprobiert... >> this["mc"+i].i = i; Hier erstellt man im erstellen Movieclip eine Variable i und gibt ihr den Wert der aktuellen i-Variable >> var x = zahlenArray[this.i]; Hier wird auf das Array zugegriffen mit der Variable i - die man zuvor für den jeweiligen Movieclip erstellt hat. ABER............. Wieso muss man das so machen? Wieso kann man nicht diese Zeile >> this["mc"+i].i = i; WEGLASSEN ! Und nicht einfach so schreiben >> var x = zahlenArray[i]; ??? Wieso muss ich dem erstellten Movieclip eine Variable übergeben? |
| | |
| | #7 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Wil des nicht funktioniert, Du bekommst immer das letzte "i" aus der for-schleife
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #8 (permalink) |
| FlashFreak ;-) Registriert seit: Jun 2002 Ort: Berlin
Beiträge: 102
|
sorry wenn ich nerve ![]() Aber genau das will ich doch auch haben? Ich bin doch noch in der FOR-Schleife drin. Und da ist das i von der FOR schleife doch noch gültig. Wozu muss ich da jetzt für den erstellten MC noch ein weiteres i anlegen? |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Apr 2004
Beiträge: 38
|
Ich glaube hier liegt ein grundsätzliches verständnisproblem vor. Also versuchen wir es mal anders: Die in der for-schleife definierte Funktion onPress wird ja erst dann ausgeführt, wenn auf den Button geklickt wird. Die Forschleife um diese Funktion "existert zu diesem Zeitpunkt nicht mehr". Das Moviclip-Objekt "weiß" nichts mehr von einer for-schleife, sondern kennt nur seine Attribute und führt die onPress-funktion aus. Die onPress-Funktion sagt nun: schaue im Array zahlenArray unter dem index this.i (also genau dem ATTRIBUT i) nach. würdest du hier einfach i nehmen, so ist i ja gar nicht definiert. Die for-schleife existiert zu dem zeitpunkt ja scheinbar nicht mehr. Das Ganze Missverständnis tritt auf, weil Actionscript alles anderes als eine konsequente Programmiersprache ist und das diese Lösungen nicht sauber ist und eher als Hack anzusehen ist . Das soll jetzt nicht heißen, dass solche Lösungen nicht funktionieren. Sie führen nur schnell zu Verwirrung und sollten in größeren Projekten eher vermieden werden. |
| | |
| | #11 (permalink) | |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
| Zitat:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" | |
| | |
| | #12 (permalink) |
| Bontempi Punk Registriert seit: Dec 2001 Ort: Dtld/Pfalz
Beiträge: 4.185
|
ich finde auch das dies nicht al shack anzusehen ist... ist ein ganz normales zuweisen einer property... ich find das ihr 2 mal i genommen habt einn bisschen unglücklich.. ich hätte i als zähler genommen - und die eigenschaft anderes benannt .. aber paperlapapp - it works ! und ich finde echt nicht das es aus dem rahmen fällt anbei - hi rusty Gruss nky |
| | |
| | #13 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Hehe! Hi nky! Dann mach ichs nächstesmal so!! this["mc"+i].id = i; Wobei ichs echt schon oft verwendet hab, und nie gabs Probleme
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Apr 2004
Beiträge: 38
|
Mir ging es gar nicht um das "i", sondern um die dynamisch erstellte onPress-Funktion. Wenn man die Sache sauber lösen wollte, hätte hier eher eine Movieclip-Klasse erstellte, der man im Konstruktor, den entsprechenden i-Wert übergibt. Am besten noch direkt den Wert des Arrays, denn globale Variablen (so wie der Array zahlenArray hier) sind meiner Meinung nach nicht das gelbe vom Ei... Aber wie schon gesagt, es funktioniert ja so alles und wer damit klar kommt, soll es so benutzen und für einen kleinen Flashfilm ist mein Ansatz wahrscheinlich zu aufwendig. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |