supa voll krass expertenmäßig kompliziert! bitte hilfe!

LighTWavE

Grünschnabel
hi lesender,

nun ja, so kompliziert nun auch wieder nicht. es ist wahrscheinlich ein flash-grundsatz, der mir noch nicht bekannt ist.

ich habe einen hauptfilm. dort liegt ein MC ( _root.content )
der content wird ausserhalb des sichtbaren bereichs per loadMovie in den leeren MC geladen.
der mit content gefüllte MC "rollt" auf die "bühne".

jetzt mein problem:
es gibt mehrere content-bereiche (home, kontakt, bilder ...)
ich möchte jetzt, dass der content auf die bühne rollt (tut er auch),
und danach genauso "weich" wieder verschwindet.

wenn ich aber unloadMovie "content" mache und dann den neuen content lade, ist dieser direkt da, ohne dass der alte content noch zeit hat, "herauszurollen". (der leere container MC wird also in die bühne reingetweent und wieder heraus, und erst wenn er wieder komplett von der bühne ist, soll sich der neue content dort hineinladen, und wieder zum label "fadein" springen.

wie geht das?? ich möchte zwischen den contents weiche übergänge haben? hier habe ich mal die scripts:

on (release) {
_root.gotoAndPlay("fadeout"); //der content wird rausgescrollt
unloadMovie ("content"); //aber hier gehts sofort weiter
loadMovie ("photography.swf", "content");
_root.gotoAndPlay("fadein");
}


hat jemand schon mal ne komplette flash-site realisiert und kann mir helfen ?? bitte! ich probiere schon 2 tage rum und nix geht .....
wie strukturiere ich eine etwas komplexere flash-site allgemein ? kann mir ein experte alles wichtig sagen ?? wär eecht voll nett

LighTWavE
 
eine möglichkeit sowas zu realisiern, ist indem du für den content eine ein- und ausroll-animation baust und die entsprechend steuerst. z.b. mit so etwas wie einem fade-in-clip. also ein mc oder eine funktion (oder ein prototype), der sich merkt, was (wenn überhaupt) gerade 'ausgefahren' ist und, wenn nötig, es wieder einfahren lässt.

dafür braucht man ein paar variabeln.
angenommen du hast die menupunkte home, kontakt & bilder.
dann erstellt man eine variabel die sich merkt was gerade aktiv (ausgerollt) ist.
am anfang ist wahrscheinlich noch nichts ausgerollt, also sagt man am anfang als frameaction _root.variabeldieweißwasgeht = "nix"; . alernativ kann man diesen befehl auch einem mc als objekt-aktion geben. das sähe dann so aus:
onclipevent (load) {
_root.variabeldieweißwasgeht = "nix";
}


sobald ein contentmc-ausfährt muß die variabeldieweißwasgeht bescheid wissen, insofern packt, man bei dem sich ausrollenden mc eine frameaction hin die für home so aussehen würde:
_root.variabeldieweißwasgeht = "home";
für bilder wär die dann entsprechend:
_root.variabeldieweißwasgeht = "bilder";
sofern man deine menupunkte auch wieder schließen kann, müsste man danach (höchstwarscheinlich am ende der zeitleiste von mc content. ein _root.variabeldieweißwasgeht = "nix"; hinpacken.

jetzt weiß variabeldieweißwasgeht schonmal bescheid.
damit das auch irgendwelche auswirkungen hat, muß die aktion, die die mc starten lässt verändert werden.
also zu dem _root.content.gotoandplay(2); kommt dann ein:
PHP:
on (release){
if (_root.variabeldieweißwasgeht != "nix") {
if (_root.variabeldieweißwasgeht == "home") {
_root.home.gotoandplay("einrollen");
_root.variabeldieweißwasgeht = "nix"; 
}
if (_root.variabeldieweißwasgeht == "bilder") {
_root.bilder.gotoandplay("einrollen");
_root.variabeldieweißwasgeht = "nix"; 
}
if (_root.variabeldieweißwasgeht == "kontakt") {
_root.kontakt.gotoandplay("einrollen");
_root.variabeldieweißwasgeht = "nix"; 
}
} 
}
das ist jetzt extrem unelegant gelöst, aber ich hoffe du hast das prinzip verstanden.
das ganze kann man auch in eine schleife packen, aber da bin ich jetzt zu faul zu...

allerdings muß man ein wenig auf das timing achten am besten setzt man sich zum testen irgendwo ein textfeld mit der variabel _root.variabeldieweißwasgeht hin, damit man sieht wann auf was gestellt wird.
häufig ist es so, das wenn man schnell auf menüpunkte hintereinander klickt, das dann die zuordnung nicht mehr stimmt, sprich das ein menüpunkt ausgefahren ist, die variabel aber auf "nix" steht und sich somit noch ein neuer ausfahren lässt.
je nach dem wie deine animation aufgebaut ist sollte man die _root.variabeldieweißwasgeht = "nix"; nicht auf den knopf setzen, sondern in die zeitleiste der einroll-ani.

mittlerweile regel ich so etwas immer indem ich eine funktion baue die alles macht. man sagt der funktion welchen mc man geöffnet haben will und die funktion macht den rest, sprich sie guckt ob was ausgerollt ist, und wenn ja rollt sie es ein.
hier ist mal ein auszug aus so einer funktion:

PHP:
function loadit (picneu, swfneu) {
    // pix
    if (_level0.pstatus != picneu) {
        _level10.wall.inside[_root.pstatus].gotoandplay("out");
        _level10.wall.inside[picneu].gotoandplay(2);
        _level0.pstatus = picneu;
    }
    // load & unload
    if (_level0.swfstatus != swfneu) {
        loadMovieNum (swfneu, int(_level0.levcount));
        _level0.swfstatus = swfneu;
        eval("_level"+_level0.occupiedlev).gotoandplay("out");
    }
}
 
vielen dank

das war ja eine recht umfangreiche antwort.
mit variablen habe ich auch schon herumexperimentiert, aber da ist mir auch irgendetwas grundlegendes nicht klar.

ich wollte so etwas machen wie:

on (release) {
_root.gotoAndPlay("fadeout");
getProperty (_root, _currentframe);
if (_currentframe == 111) {
unloadMovie ("content");
loadMovie ("/photography.swf", "_root.content");
_root.gotoAndPlay("fadein");
}
}


frame 111 ist mein letztes bild im _root, wo der content-eingefahren ist. er ist grob so aufgebaut: auf der hauptzeitleiste spielt sich ein intro ab, der erste content (home) wird in den leeren MC geladen, er fährt rein, und stoppt. danach kommt nur noch die sequenz, "fadeout" und dann frame 111 (letzter frame)

................aber irgendetwas stimmt damit nicht. weiss irgendjemand was ??
 
dickes fettes DANKE an kuat

juhhhhhuuuuuuuu!!! es hat geklappt.
ich habe mir einfach an einem neuen tag, mit einem frischen geist, dein lösungsvorschlag mit variablen verinnerlicht... und kurz bevor ich aufgeben wollte... siehe da ... es funzt!! ;-)))

ich bin wirklich der glücklichste mensch auf erden... meine erste funzende variable in diesem leben ;-))) jippie jau jau hey, i´m goin´ in ....
 
Zurück