| |||||||
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) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
| function frage
Hallo Leute, ich bin leider kein Actionscript Profi und stehe etwas auf der Leitung bei einer sicher ganz einfachen Aufgabe. Folgendes möchte ich erreichen: Ein swf soll auf buttonclick ein weiteres swf laden (Hintergrundbilder, die sich überblenden). Das ist ja kein Problem. Clickt man einen anderen Button der Hauptnavi, soll dieser Hintergrund verschwinden und ein neuer auftauchen. Auch das ist kein Problem. Jetzt hätte ich aber gerne folgendes: clicke ich wieder zurück auf den ersten button, soll der erste Hintergrund wieder da sein. ABER ER SOLL SICH NICHT WIEDER NEU LADEN MÜSSEN. Ich habe mir gedacht, das löse ich mit einer Funktion, ich weiß aber nicht genau wie die Funktion aussehen muss, hier mein Ansatz. AS 1.Frame Hauptzeitleiste Genau hier liegt mein Problem, was muss hier hin? Code: function mc1geladen (); _root.mc1geladen=false; AS 4.Frame mc1 (1.Frame nach einem preloader): Code: _root.mc1geladen=true; AS an Button, der mc1 lädt: Code: on release {
if _root.mc1geladen=true {
_root.mc1._visible=true;
}
else {
loadMovie ("swf/mc1.swf",_root.mc1);
}
}
_root.mc2._visible=false; Code: on release {
if _root.mc2geladen=true {
_root.mc2._visible=true;
}
else {
loadMovie ("swf/mc2.swf",_root.mc2);
}
}
_root.mc1._visible=false; Geändert von woifaaal (15-01-2005 um 09:33 Uhr) |
| | |
| | #2 (permalink) |
| Gast
Beiträge: n/a
|
Das Einzige, was mir auf Anhieb auffällt, sind kleine Syntaxfehler... in einer if-Abfrage müssen immer 2 "=" stehen und das Ganze stets in Klammern. PHP-Code: |
|
| | #3 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
Offenbar übersteigen Funktionen derzeit noch meinen begrenzten Horizont. Ich habe es nun versucht anders (wesentlich einfacher) zu lösen. Obwohl es für mich absolut logisch klingt, funktioniert es aber nicht. auf dem mit "home" beschrifteten Frame steht nun: Code: if (_root.mc1geladen = "true") {
_root.containermc1._visible = 1;
}else{
loadMovie ("swf/mc1.swf",_root.containermc1);
}
stop (); Auf dem externen Movie steht dann nach einem Preloader auf dem dritten Frame Code: _root.mc1geladen = "true"; ich habe auch schon probiert im ersten Frame Code: mc1geladen = "false"; |
| | |
| | #4 (permalink) |
| Gast
Beiträge: n/a
|
Du hast schon wieder nur ein "=" verwendet. In if-Abfragen immer ein absolutes istgleich, also "==" !!!!! Bin mir jetzt nicht sicher, aber ich glaub, der externe swf hat ja ne eigene Hauptbühne, deshalb könnte es Probleme geben, wenn in der eigendlichen .fla und im externen sfw von _root gesprochen wird. Ersetz mal _root durch _global Ein bischen einfacher ist es auch, wenn du loadMovie über den zielclip aufrufst, also PHP-Code: |
|
| | #5 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
Hallo, danke für Dein Hilfeangebot. Also ich habe jetzt folgendes gemacht: "=" durch "==" und "_root" durch "_global" ersetzt. Du hast recht, mit _root funktioniert es nicht. Allerdings habe ich eine andere swf mit externer swf, die kann über _root.play(); die Hauptbühne steuern. Manchmal verstehe ich flash wirklich nicht... Mein Problem ist aber noch folgendes: die if-Abfrage funktioniert nicht richtig, denn das swf wird immer wieder neu geladen, wenn ich auf den "one" frame zurückkehre. Ich habe es mit trace mal ausprobiert, folgender Code auf "home": PHP-Code: mc1.swf lädt sich wie gewünscht (auf frame 3 steht folgendes Skript): PHP-Code: Ich clicke nun auf einen Button, mit folgendem Skript, der mich zu einem anderen frame bringt: PHP-Code: mit folgendem Button geht es wieder zurück: PHP-Code: Ich verstehe es einfach nicht!!! |
| | |
| | #6 (permalink) |
| Gast
Beiträge: n/a
|
Du hast hier und da mal _root, dann wieder _global, dann wieder gar nichts stehen...... Konsequenter weise würde ich vorschlagen, zunächst mal vor jeden "mc1geladen" ein _global zu schreiben. Dadurch ist gewährleistet, dass alle Scripte vom gleichen mc1geladen sprechen. Für mc2 etc gilt natürlich das Selbe. Du hast in deiner If-Abrage nicht nach dem boolschen Wert true gefragt, sondern, ob mc1geladen den string "true" zugewiesen bekommen hat. Wurde aber nie getan. Dewegen weg mit den Aführungsstrichen. Einfach nur PHP-Code: Geändert von Muecke_Romeo (16-01-2005 um 13:26 Uhr) |
|
| | #7 (permalink) |
| . Registriert seit: Oct 2001 Ort: Wien
Beiträge: 238
|
So, das war leider eine längere Pause. Ich hatte leider keine Zeit, um mich darum zu kümmern, aber jetzt sitze ich wieder fieberhaft davor. Ich habe nun Dein Skript verwendet: PHP-Code: PHP-Code: PHP-Code: PHP-Code: Das kann doch nicht sein, oder??? |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |