AScript: on (press) startet film, und so weiter...

relaxodeluxe

Mitglied
hallo

folgendes steuerungsproblem: in meinem SWF gibt es einen animierten background (horizontal), und 5 buttons, die je einen movieclip laden.
beim laden lädt der erste film und stoppt an bestimmtem punkt -> <klick> auf button zwei -> erster filmclip = fade out -> danach: hintergrund animation, ist ne funktion (move mit easeout) -> danach: startet zweiter filmclip.
die animation an sich funzt schon, nur starten die clips alle gleichzeitig nach dem on(press){}. fehlt also die zeitl. abstimmung.

eine beispielseite mit ähnlichem timing: bryangaffin.com

danke schonmal

reldel
 
Dann liegt es doch an der Zuordnung zwischen Button und zugehörigen MC, denn sonst würde bei Buttonklick doch nicht ein wildfremder MC plötzlich losspielen.

Oder was hab ich jetzt nicht verstanden? :)

Geist
 
is vielleicht besser, wenn ich mal ...

das teil zeige um wasses geht.

rotbraun.swf

auf klick spielen die filme, alles liegt in einer szene. die reihenfolge soll aber so sein:
aktiver film fadeout - hintergrund scroll - neuer film fade in.

die filme liegen als instanzen (film1, film2, ...) im hauptMC und alle wichtgen frames (in / out / stop) sind bezeichnet. die hintergrund animation ist eine funktion. vielleicht is es besser das über variablen zu lösen. nur klappt das bei nicht so, wie ich will.

wie kann ich denn ne globale variable ansprechen? so:
_root.filmactive=film1 ?

die könnte ich ja immer neu setzen, oder?

gruss
 
Eine globale Variable kannst Du mit
PHP:
_global.x=10
setzen und anschliessend ohne genaueren Pfad ansprechen. Mit _root.x sprichst Du eine Variable an, die eben auf _root gesetzt wurde ( und eben nicht auf einem mc-die du dann mit mc.x ansprechen würdest).

Hast Du Dir überlegt, ob Du nicht in jede Registerkarte einen eigenen Container-MC legen willst? Ist evt. einfacher und führt zu einer saubereren Lösung (vielleicht).

Ansonsten musst Du halt mit Funktionen arbeiten. Was Du in Deinem Film sicher schon gemacht hast. So kann eine Funktion scrollen, eine faden und eine laden. Dann kannst Du mit Bedingungen den Ablauf steuern. ZB: wenn Film1._alpha==0 dann Funktion scroll, wenn Film1._x==xx+(?) dann film2.funktion Fadein oder sowas.

xxx:sieht nett aus, würd das ganze aber in ein kleineres Fenster (pop up oder chromless) legen. Sonst wird man fast erschlagen.

c y
 
he skyla

merci für deine flotte anwort. ich bin grade am probieren, wie ich das mit den variablen löse... d

die buttons sind ein extra MC, die filme auch, geht ja nicht anders.

hast schon recht, kommt am ende alles in ein popup-fenster. die anim läuft auch langsam, weil die grafiken alle noch pixelbased sind, vom template. ein test mit den nachgebauten in flash ist schon sehr flüssig und smooth.

CU
 
Wie wär's denn außerdem, wenn du - da du deine Reihenfolge ja schon weißt - einfach nach demn AS-commands für das Fade-In deiner Filme (Tween?) einfach zum Schluß das Einladen des jeweiligen Filmes veranlasst:
PHP:
loadMovie(film, container);
Dazu dann halt einfach per jeweiligem Buttondruck die benötigen Variablen "film" und "container" definieren.

Geist

btw: ziemlich rechenintensiv, oder hast du so 'ne geringe fps-rate eingestellt?
 
@geist:
die anim läuft auch langsam, weil die grafiken alle noch pixelbased sind, vom template. ein test mit den nachgebauten in flash ist schon sehr flüssig und smooth.

@geist
aber danke, die sache mit (film,container) checke ich grade. ich stecke leider nicht so in AS drinne, muss also erstmal kapieren, wie die daklaration von variablen über instanzen hinweg funzt. ausserdem hab ich das grösste prob noch bei der zuweisung der richtigen funktionen, aber das ist nur ein knoten im hirn, der platzt bis heute abend :)

bye
 
Tip:

Wenn Du Dich da reinarbeiten willst, tu es gleich MX-konform. Das heisst: schreib Deinen AS-code nicht auf Instanzen/Buttons, sondern direkt auf das erste Frame der Hauptzeitleiste:

Beispiel (angenommen Du hast einen MC mit ID clip und eine Variable x=10 auf _root):

Flash 5 (war einmal) direkt auf MC:


PHP:
onClipEvent(enterFrame){
this._alpha-=_root.x;
}

Flash MX in Frame 1 der Hauptzeitleiste:
PHP:
clip.onEnterFrame=function(){
   this._alpha-=x;
}

Einer von vielen Vorteilen dieser Schreibweise: ein Pfad ist schon weggefallen. Der Code wird dazu übersichtlicher, kompakter (nicht mehr im ganzen Film zerstreut) und vorallem skalierbar.
 
sicherlich interessant.
genau das versuche ich grade. alles wech von den buttons, direkt in frames. aber kann ich alles auf layer0 legen? woher kriegt der denn dann die info, dass _root.filme.film1 gerade frame 10 erreicht hat und der nächste starten kann?

hoffentlich sage ich jetzt nichts falsches: ich hasse flash und AS, ich tue das nur für meine süsse und weil ich grade für 4 wochen die möglichkeit habe, an ne kiste mit ner 5er-lizenz zu kommen ;)

nichtsfürungut. :)
 

Neue Beiträge

Zurück