| |||||||
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) |
| Neuer User Registriert seit: May 2004 Ort: München
Beiträge: 30
| Bild in Button laden (Instanzbennung funktioniert nicht)
Ich möcht gerne in einen Button dynamisch Bilder hereinladen. Vom Aufbau her habe ich im "Auf" Frame einen Movieclip, in dem ein weiterer Movieclip liegt. Wenn ich nun beide Movielclips (unterschiedlich) benenne, wird mir in der Objektausgabe (Debugger - Objekte auflisten) zwar der Button selbst und der "innerste" Movieclip mit Namen angezeigt, aber der Movielclip, in den der zweite Movieclip enthalten ist, bekommt keinen Namen, sondern heißt instanzXY Es sieht also z.B. so aus: btn_test.instanz1.mc_thumb1 Außerdem verwende ich den mc_thumb1 Movieclip mit selben Namen nochmal im "Drücken" Frame und dort wird soetwas angezeigt: btn_test.instanz1 Wichtig: Die "mittlere" Instanz(hier 1) bleibt identisch. Es wird also anscheinend kein Unterschied zwischen "Auf", "Drücken", "Aktiv" usw. gemacht, auch wenn dort verschiedene Movieclips sind. Flash zeigt also quasie nur einen Bruchteil der enthaltenen Movieclips an. Es bekommen also alle Movieclips in der zweiten Ebene keinen Namen, obwohl ich ihn angegeben habe. Hattet ihr vielleicht schon mal das Problem und wisst eine Lösung oder habt ihr irgendwo tiefergehender Informationen zur Instanzbennenung von Buttons? Macromedia ist ja wie immer seeehr spärlich mit Informationen. Hinweis zum Anhang: Ich habe hier die ganze Geschichte einmal in ein eigenes Movie gepackt. Wenn ihr das ganze laufen lasst und per Fehlersuche / Debugger die Objekte auflisten lasst, erscheint das hier: Code: Stufe #0: Bild=1
Schaltfläche: Ziel="_level0.btn_test"
Movieclip: Bild=1 Ziel="_level0.btn_test.instance1"
Movieclip: Bild=1 Ziel="_level0.btn_test.instance1.mc_level3" Mein Ziel ist es, daß etwas wie: Code: Movieclip: Bild=1 Ziel="_level0.btn_test.mc_level2"
Movieclip: Bild=1 Ziel="_level0.btn_test.mc_level.mc_level3" Ich muss auf mc_level3 zugreifen, um dort ein Bild hineinzuladen. |
| | |
| | #3 (permalink) | |
| Neuer User Registriert seit: May 2004 Ort: München
Beiträge: 30
| Zitat:
Ich möchte in die unterschiedlichen Frames eines Buttons (also "Auf "Darüber" usw.) Bilder hineinladen, darf ich jetzt deiner Antwort entnehmen, daß dies auf keinen Weg möglich ist? Ich meine ich habe in den einzelnen Frames ja Movieclips mit eigenem Namen und in diese Movieclips möchte ich quasi etwas hineinladen. Ich verstehe nicht, was "dafür gibt es ja die MCs" heißen soll, wenn ich an beschriebener Stelle nicht auf meinen MC zugreifen kann. Und mit dem Level3 Meine ich eben auch die Frames eines Buttons. Kann ich ja nichts dafür, wenn sie nicht auf level0 liegen... | |
| | |
| | #4 (permalink) |
| Gast
Beiträge: n/a
|
Ich vermute mal, dass du den grundlegenden Aufbau von Flash noch nicht ganz verstanden hast... Wenn du dynamische Elemente einer Schaltfläche zufügen willst, kannst du statt eines Button auch einen MC nehmen. Ein MC besitzt die gleichen Methoden eines Button, aber darüberhinaus eben noch ein paar mehr. Du kannst in dem MC bspw. drei Schlüsselframes setzen, jeweils mit einer stop-Aktion. Den Frames gibst du die Bildnamen "_up", "_over" und "_down", dann funzen die schon mal (auch ohne Script) wie ein Button, d.h. bei Mausover- und Mausklick-Events werden andere Zustände gezeigt. Und in einen MC kannst du dynamisch per loadMovie Bilder nachladen, dazu solltest du in dem MC aber weitere MCs z.B . mit createEmptyMovieClip anlegen. Diese MCs kann man dann wie einen "Bilderrahmen" nutzen... Da diese MCs alle noch auf Level 0 liegen, benötigst du keine weiteren Level. Mit einem createEmptyMovieClip oder auch mit attachMovie/duplicateMovieClip werden MCs auf bestimmte Tiefen der Hauptzeitleiste, bzw. eines Container-MCs gelegt. Mit swapDepths kann man diese Tiefe, falls gewünscht, später beeinflussen. Um dir noch einmal die Ebenenhierarchie in Flash zusammenzufassen: auf der Hauptzeitleiste/_root/_level0 liegt die Bühnen mit Ebenen, diese Ebenen liegen auf Tiefen ab -16384, jede neue Ebene geht in Richtung 0, also -16383, -16382 etc. Diese Ebenen sind allerdings statisch, d.h. du kannst MCs, die auf diesen Ebenen liegen, zur Laufzeit nicht removen/löschen. Das geht nur mit MCs, die auf den dynamischen Tiefen ab Tiefe 0 liegen. Jeder MC bringt noch einmal wieder seine eigenen Tiefen mit, d.h. ein MC kann auf der Tiefe 100 der Hauptzeitleiste liegen, ein weiterer in dem MC eingebetteter MC kann auf Tiefe 20 des MCs liegen. Und weil das anscheinend alles nicht ausreicht, hat MM noch weitere Level zugelassen, jeder weitere Level liegt "über" dem Level 0, hat seine eigenen Tiefen, kann seine eigenen MC mit wieder eigenen MCs auf eigenen Ebenen haben usw. *schwitz* Da der Level 0 ausreichend Tiefen hat, benötigt man bei geschickter Programmierung also eigentlich nie andere Level. Ganz im Gegenteil: du kannst z.B. einen MC aus Level1 auf Tiefe 10 nie "unter" einen MC auf Tiefe 1000 aus Level 0 schieben, weil eben der ganze Level 1 "über" Level0 liegt. Hoffe, das war jetzt eindeutiger... |
|
| | #5 (permalink) | |
| Neuer User Registriert seit: May 2004 Ort: München
Beiträge: 30
| Zitat:
Danke für die ausführliche Erklärung. Daß man einen Movieclip auf diese Art und Weise als einem Button benutzen kann, war mir tatsächlich nicht bekannt. Woher bekommt man derartige Informationen? Die Macromedia Dokumentation ist wie gesagt mehr als spärlich und die Bücher, die ich besitze sagen zu diesem Thema auch nichts tiefergehendes. Wie dem auch sei. Ich kann also meine Buttons durch normale Movieclips ersetzen, in denen ich einfach entsprechende Schlüsselframes mit "_up", "_over", "_down" betitele? Wie heißt das vierte Frame? "_active" ? Noch etwas zu den Leveln: Offensichtlich habe ich die Bedeutung von Leveln mit Ebene verwechselt. Ich meinte zumindest, daß ich auf die tieferen Ebenen eine Buttons zugreifen wollte - was sich aber hiermit dann wohl erledigt hat. Also: Besten Dank für deine umfangreiche Erklärung und bitte, bitte, verrate mir, wo man derartige Informationen herbekommt. NACHTRAG: Ich habe das beschriebene jetzt einmal ausprobiert, aber die Umsetzung scheitert schon an den "stop();" Befehlen. Ich muß ja erst ein Frame auswählen und dann einen Movieclip in dem Frame auswählen, um sie zu setzen. In den Frame selbst kann ich sie ja leider nicht schreiben. Nun auf jeden Fall habe ich die Markierungen und Stops wie beschrieben gesetzt und ich bekomme die Fehlermeldung: Code: Symbol=btn_test, Ebene=Ebene 1, Bild=1: Zeile 1: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
stop();
Symbol=btn_test, Ebene=Ebene 1, Bild=2: Zeile 1: Anweisung muss innerhalb einer on/onClipEvent-Prozedur vorliegen
stop(); Geändert von storycreator (25-11-2004 um 22:49 Uhr) | |
| | |
| | #6 (permalink) | ||
| Gast
Beiträge: n/a
| Zitat:
Zitat:
Und verschone mich bitte mit Clipevents, du solltest deine Scripte alle auf die Hauptzeitleiste legen, sonst musst du ja ständig bei der Scriptsuche erst den MC anwählen. Beispiel: ActionScript:
Geändert von agedoubleju (25-11-2004 um 23:15 Uhr) | ||
|
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |