| |||||||
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) |
| Flash0r Registriert seit: Jul 2002
Beiträge: 156
| Mehrere MC mit LoadMovie übereinander
Hallo Leute, die Suche habe ich verwendet und auch fast Lösungen gefunden. Nur leider kann ich die ZIP-Dateien nicht öffnen, in denen sich die Lösungen befinden ![]() Über eine Navigation, die sich im Hauptfilm befindet, möchte ich div. SWF in einen leeren MC laden. Bei jedem weiteren Klick auf irgendeinen Button soll der neue MC über dem alten abgespielt werden. Bei mir verschwindet allerdings immer das alte MC und dann wird erst das neue geladen. Hierzu habe ich folgendes Script erstellt: In der Hauptzeitleiste wird die Variabele Code: ebenenZaehler = 0 Bei jedem Klick auf einen Button wird diese Var hochgezählt, um eine Ebene höher zu erscheinen. Das will aber nicht ![]() Code: on(release)
{
++ebenenZaehler;
_parent.content.loadMovie("news_mc.swf",eval("_level" + ebenenZaehler));
} Danke |
| | |
| | #2 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Hallo! Wenn du die auf Level laden willst, dann so: PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #4 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Also: Je MC nur eine Datei nachladbar. Generell gibt's dein_mc.loadMovie("deine.swf") wobei "dein_mc" der MovieClip ist, in den du nachlädst oder loadMovieNum("deine.swf",1) um den Film auf Level 1 zu laden. Einen leeren MC erstellst du mit createEmptyMovieClip("mc",1) wobie hier die 1 die Tiefe im Hauptfilm ist (wieder was anderes als ein Level). createEmptyMovieClip("mc1",2) liegt dann über dem vorher erstellten MovieClip ("mc"). Kann man das verstehen? Sonst gibt's ja noch die Flashhilfe...
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #5 (permalink) |
| °.oO°O.o°.oO.o°O Registriert seit: Jun 2005 Ort: CH
Beiträge: 1.490
|
Ja, gehst du! _levelN ist die Ebene... analog den Ebenen, wenn du mit Flash normal arbeitest (also nicht im ScriptEditor). Dabei hast du Level von 0 bis 99 zur Verfügung. Die Tiefe gibt die Reihenfolge innerhalb einer Ebene an... das Spektrum reicht da von ~ -16000 - 16000 (glaub ich zumindest). Somit hast du 100 Level mit jeweils ~32000 Tiefen sprich 3,2 mio. Möglichkeiten Bilder übereinander zu stapeln, ohne dass ein Bild ausgetauscht wird...
__________________ There is no way to happiness, happiness is the way! - Buddha |
| | |
| | #6 (permalink) | |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
| Zitat:
PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ | |
| | |
| | #7 (permalink) |
| Flash0r Registriert seit: Jul 2002
Beiträge: 156
|
Danke. Benötige aber weitere Hilfe, wenn jemand noch Lust hat ^^ Jetzt habe ich es mal andersherum versucht: Die Var ebenenZaehler steht weiterhin auf der Hauptzeitleiste. Nun erstelle ich einen MC innerhalb meines leeren Content MCs und zaehle dabei bei jedem weiteren Klick jeweils ein Level höher. Das Ganze sieht dann wie folgt aus: [CODE] on(release) { z = ++_root.ebenenZaehler; _root.content.createEmptyMovieClip("subContent" + z ,z); tmpMC = eval("_root.content.subContent" + z); tmpMC.loadMovieNum("profil_mc.swf",z); } CODE] Leider funktioniert das auch noch nicht. Wo habe ich hier den Denkfehler? |
| | |
| | #8 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Weil loadMovieNum auf LEVEL läd und nicht in MovieClips!!! PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #9 (permalink) |
| Flash0r Registriert seit: Jul 2002
Beiträge: 156
|
Was für eine schwere Geburt ![]() Vielen Dank für die Unterstützung. Bei dem Ganzen hin und her habe ich dann letztendlich LoadMovie und loadMovieNum nicht mehr unterschieden. Wenn ich das richtig verstehe, kann man loadMovieNum nur in Verbindung mit der Hauptzeitleiste verwenden, wobei dann der gesamte Film überdeckt werden würde. Naja, jetzt bin ich wenigstens mal einen Schritt weiter beim Programmieren in AS. Beste Grüße |
| | |
| | #10 (permalink) |
| Flash0r Registriert seit: Jul 2002
Beiträge: 156
|
Ok, soweit so gut. Jetzt funktioniert das alles einwandfrei bis auf das Problem mit der Performance. Ich versuche nun die darunterliegenden MCs mit unloadMovie(); zu entfernen. Ich möchte bewirken, dass darunterliegende MC erst entfernt werden, wenn das darüberliegende geladen wurde. Jetzt habe ich folgendes Script geschrieben, wobei es mir vorkommt, als ob es nicht funktioniert ![]() Bei jedem Aufruf wird der Film langsamer. Wie kann ich überprüfen, ob ein Film noch existent ist? Hier mein Script: Code:
on(release)
{
zCurrent = _root.ebenenZaehler;
z = ++_root.ebenenZaehler;
_root.content.createEmptyMovieClip("subContent" + z ,z);
tmpMC = eval("_root.content.subContent" + z);
tmpMC.loadMovie("news_mc.swf",z);
tmpMCtoUnload = eval("_root.content.subContent" + zCurrent);
if(z > 1){
trace(tmpMC);
trace(tmpMCtoUnload);
tmpMC.onEnterFrame = function() {
if(tmpMC._framesloaded == tmpMC._totalframes){
trace(tmpMCtoUnload + " wurde entfernt!");
unloadMovie(tmpMCtoUnload);
}
}
}
} Geändert von mOss (06-12-2005 um 14:49 Uhr) |
| | |
| | #11 (permalink) |
| Flash0r Registriert seit: Jul 2002
Beiträge: 156
| Bin ratlos
Ok, habe jetzt geschnallt, dass ich bei der Abfrage nach den Totalframes eh nicht die Anzahl der Frames aus dem geladenen SWF erhalten. Hier ist auf jeden Fall schon ein Fehler. Wie kann ich denn die Anzahl der Frames der zu ladenden SWF herausfinden? Und wieso funktioniert onEnterFrame hier nicht?
Geändert von mOss (06-12-2005 um 15:10 Uhr) |
| | |
| | #12 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Hab's jezt nicht getestet. Aber du kannst den onEnterFrame schonmal nicht auf den MC legen, der auch nachläd... PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
| | #13 (permalink) |
| Flash0r Registriert seit: Jul 2002
Beiträge: 156
|
Habe schon bald ein schlechtes Gewissen Deine Änderung funktioniert, allerdings habe ich wieder das Problem, dass der darunterliegende MC sofort entfernt wird. Jetzt ist mir dabei aufgefallen, dass ich mit _currentframe == _totalframes abfragen müsste, um sicherzustellen, dass der darüberliegende MC wirklich alles bedeckt, damit der darunterliegende gelöscht werden kann. Dazu habe ich folgende Erweiterung hinzugefügt: Code: on (release) {
zCurrent = _root.ebenenZaehler;
z = ++_root.ebenenZaehler;
_root.content.createEmptyMovieClip("subContent"+z, z);
tmpMC = eval("_root.content.subContent"+z);
tmpMC.loadMovie("profil_mc.swf");
tmpMCtoUnload = eval("_root.content.subContent"+zCurrent);
if (z>1) {
trace(tmpMC);
trace(tmpMCtoUnload);
mc = _root.createEmptyMovieClip("watcher",1000)
mc.onEnterFrame = function() {
this._parent.tmpMC.stop()
if (this._parent.tmpMC._framesloaded == this._parent.tmpMC._totalframes) {
this._parent.tmpMC.play()
if (this._parent.tmpMC._currentframe == this._parent.tmpMC._totalframes) {
trace(tmpMCtoUnload+" wurde entfernt!");
removeMovieClip(tmpMCtoUnload);
removeMovieClip(this);
}
}
};
}
} ![]() edit: Das liegt wohl daran, dass er die Anzahl der Frames des dynamisch erzeugten MC ermittelt und nicht die Anzahl der Frames der SWF-Datei, die über loadMovie geladen wird. Beim Trace werden bei totalframes und framesloaded stets 1 angezeigt, obwohl die SWF-Datei etwa 30 Frames hat. Geändert von mOss (06-12-2005 um 15:53 Uhr) |
| | |
| | #14 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Ja, der Film hat ja auch nur einen Frame, bis das loadMovie() zündet. Musste noch abfragen. So z.B.: PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |