Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-09-2005, 10:48   #1 (permalink)
Neuer User
 
Benutzerbild von hilarion*
 
Registriert seit: Aug 2005
Beiträge: 54
Zwischen Movieclips wechseln

Ich habe einen Hauptfilm und 8 weitere Movieclips in Form von swf's die man über eine Navigationsleiste laden kann.

Realisiert habe ich alles via Zeitleiste, darum ist es leider etwas aufwändig und kompliziert.
Das ist die Seite: www.gugg.de

Jeder der insgesamt 9 Filme hat sozusagen einen Preloader mit Fade in Part, und dann für jeden Movieclip einen Extra Fade out Part der dann jeweils bei der Action "stop" den jeweiligen Movieclip lädt und die anderen entlädt.

Dies ist natürlich ein aufwändiger Weg, da alle Movieclips über die Zeitleiste gesteuert werden.

Meine Frage: Wie in etwa könnte man das ganze mit Hilfe von Actionscript steuern, sodaß ich pro Movieclip nur 1 Fade In Part und 1 Fade out Part (Fade in/out stimmt zwar nicht ganz) benötige?

z.B.: Wenn der Balken und die Bilder oben aus dem Film draussen sind wird der angesteuerte Film geladen und alle anderen ausser der Hauptfilm entladen.
Zu diesem Zeitpunkt bräuchte ich dann einen Actionscript Code der erkennt welchen Movieclip(bzw. Button) ich zuvor angeklickt habe damit ich mir pro Movieclip die 8 verschiedenen Fade Out Parts ersparen kann.

Danke einstweilen...

Geändert von hilarion* (23-09-2005 um 10:56 Uhr)
hilarion* ist offline   Mit Zitat antworten
Alt 23-09-2005, 16:03   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Faderscripte gab es hier doch schon einige, schau mal unter "Suchen". Ansonsten bietet es sich z.B. an, einen MC-Prototypen zu erstellen, der das Ein- oder Ausfaden übernimmt. Dazu gibst du den nachzuladenden MCs laufende Nummern wie z.B. mc1.swf, mc2.swf etc mit. Wenn deine Buttons dann auch fortlaufende Nummern oder eine eindeutige ID haben, dann reicht etwa folgendes Script als Ansatz:
ActionScript:
  1. buttonzahl = 7;
  2. //Instanznamen btn1 bis btn7
  3. for(var i=1;i<=buttonzahl;i++){
  4. _level0["btn"+i].ID = i;//jedem Button eine ID zuordnen
  5. _level0["btn"+i].onRelease = function(){//jeweils nach Klicken und Loslassen der Maustaste
  6. _level0.con.fadeOut(this.ID);
  7. _level0.con.fadeIn(this.ID);
  8. }
  9. }
In den IDs wird dann die laufende Nummer des Buttons übergeben, damit kannst du dann den entsprechenden MC mit seiner Nr laden.
  Mit Zitat antworten
Alt 23-09-2005, 17:14   #3 (permalink)
Neuer User
 
Benutzerbild von hilarion*
 
Registriert seit: Aug 2005
Beiträge: 54
Danke für Deine schnelle Antwort.

Ich denke aber ich hab mich etwas falsch ausgedrückt.
Ich meinte nicht fade in or out im herkömmlichen Sinne sondern einfach das starten bzw. beenden des jeweiligen Movieclips.
Hier ein Movieclip der insgesamt 9 zum ansehen was ich meine:test.zip

Die komplette Seite hier: www.gugg.de

Was ich möchte ist, anstatt für jeden Movieclip jeweils eine sozusagen "Beendenanimation" zu machen, wie man im test.fla sieht, möchte ich diese nur einmal machen und via Actionscript dann je nachdem was ich für einen button gedrückt habe zum passenden Movieclip zu kommen, oder besser gesagt den passenden Movieclip zu laden.
hilarion* ist offline   Mit Zitat antworten
Alt 23-09-2005, 23:53   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
unloadMovieNum(7);
Ohjeohje, ich glaube, du hast da etwas falsch verstanden Der Level 0 reicht normalerweise für alle Anwendungen aus, da er mehr als eine Million referenzierbare Tiefen hat. Die Tiefen der Bühne heißen Ebenen, die Hauptzeitleiste liegt auf Tiefe -16384 jede weitere Ebene liegt einen Wert in Richtung 0, also -16383, -16382 etc. Alle MCs auf negativen Tiefen können nicht direkt mit removeMovieClip gelöscht werden, sondern müssen dazu mit swapDepths auf eine positve Tiefe gebracht werden.

Wenn du MCs zur Laufzeit mit createEmptyMovieClip oder attachMovie auf die Bühne bringst, kannst du sie gleich von vornherein auf eine dynamische Tiefe ab 0 legen. Mit getDepth kannst du die Tiefe eines MCs abfragen, mit swapDepths kannst du MCs auf andere Tiefen verschieben und ab MX2004 gibt es noch ein paar weitere Methoden.

Jeder weitere Level, den du mit loadMovieNum erzeugst, bringt jetzt wieder weitere Tiefen mit sich. Problem ist aber, dass MCs auf verschiedenen Ebenen mit verschiedenen Leveln sich kaum noch vernünftig zueinander positionieren lassen, deshalb lass lieber die Finger davon. Level sind wie erwähnt auch meist überflüssig...

In deinem Script hast du leider den Fehler gemacht, alles direkt auf die Hauptzeitleiste zu legen. Dadurch ist ein vernünftiges Pflegen des Filmes fast unmöglich. Das Zauberwort heißt hier "Modularisierung", d.h. den Film so zu zerlegen, dass das Script erstens kleiner und zweitens besser zu pflegen und weiterentwickeln ist. Das ist zwar im ersten Moment ein "Ritterkreuzauftrag", aber besser ein Ende mit Schrecken...

Dazu solltest du auch alle Tweens nur noch über Scripte durchführen. Nach oben oder unten bewegen kannst du deine MCs über die Veränderungen der _y-Eigenschaft des MCs auf einem onEnterFrame-Event, der eine kontinuierliche Bewegung zulässt.

Interessant sind in diesem Zusammenhang auch die easing-Gleichungen von Robert Penner, mit denen man nicht nur gleichförmige Bewegungen, sondern auch Beschleunigungen und Bremsmanöver erstellen kann. Einfach mal unter "Suchen" schauen...
  Mit Zitat antworten
Alt 24-09-2005, 09:01   #5 (permalink)
Neuer User
 
Benutzerbild von hilarion*
 
Registriert seit: Aug 2005
Beiträge: 54
Ah super, Danke.
Dann werd ich mir das gleich mal genauer ansehen.

Bin halt ein Actionscriptanfänger, aber das wird schon.
hilarion* ist offline   Mit Zitat antworten
Alt 14-11-2005, 18:48   #6 (permalink)
o|o
 
Registriert seit: Jul 2001
Beiträge: 376
@ agedoubleju
Super Erklärung!
Danke.
(Bin über die Suche nach einem ähnlichem Problem auf deine Erklärung gestossen)
Kanster ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele