Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2004, 21:32   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Dresden
Beiträge: 6
Probleme mit onClipEvent(load) nach loadMovie

Hallo,
hab folgendes Problem: Hänge ich an einen MC manuell einen Eventhandler, geht er ja nach einem loadMovie in diesen MC nicht verloren.

onClipEvent(load) wird also ausgeführt, wenn der MC das erste Mal auf der Bühne erscheint (dupliziere diesen MC ca. 25mal und lade dann überall Bild-SWFs rein) und zum zweiten Mal, nach dem in diesen MC was geladen wurde. Das klappt auch. Allerdings funktioniert beim zweiten Mal kein Verweis auf andere Timelines/Objekte/Variablen.

So funzt beispielsweise
onClipEvent(load){
trace(_width);
}
problemlos, allerdings
trace(this._width) oder (this) oder (_parent) funzt nicht.
Habe also keine Möglichkeit, beim Zweiten mal in Interaktion zu treten.
Klar könnte ich es mit if(getBytesLoaded() ... probieren, aber eigentlich würde ich lieber das Problem lösen.
Hab auch schon probiert, einen zweiten Handler zu erzeugen, falls die Zugriffe erst nach Framewechsel klappen, aber das funktioniert nur beim ersten Durchlauf (MC auf der Bühne), nicht aber beim zweiten Mal (fertiges Laden in den MC):
onClipEvent(load){
onEnterFrame = function(){
--_root.counter;
trace(_root.counter);
delete onEnterFrame;
}
}

Was mache ich falsch?
Viele Grüße, slartibartfas
Slartibartfas ist offline   Mit Zitat antworten
Alt 01-10-2004, 23:26   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Was mache ich falsch?
Du nutzt clipEvents, das machst du falsch... Eine Funktion auf der Hauptzeitleiste, die Interaktionen mit dem MC auslöst und ein attachMovie machen das besser.

BTW: Ich habe gerade mal testhalber ein Rechteck erstellt, in einen MC konvertiert, ihm den Instanznamen mc1 gegeben und folgenden Clipevent draufgelegt:
ActionScript:
  1. onClipEvent(load){
  2.     trace("_width="+_width);
  3.     trace("this="+this);
  4.     trace("this._width="+this._width);
  5.     trace("this._parent="+this._parent);
  6. }

Ausgabe im Testmodus:
_width=52.95
this=_level0.mc1
this._width=52.95
this._parent=_level0

Also musst du etwas falsch gemacht haben...
  Mit Zitat antworten
Alt 02-10-2004, 08:12   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Dresden
Beiträge: 6
Ja natürlich macht er das dann. Hab ich ja auch geschrieben, dass das funktioniert. Es geht darum, dass wenn man in diesen MovieClip mit loadMovie einen anderen Inhalt reinlädt. Dann wird ja der EventHandler ein zweites Mal ausgeführt - und da (und nur da) - gibts die Probleme.
Slartibartfas ist offline   Mit Zitat antworten
Alt 02-10-2004, 13:44   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wie gesagt: nimm keine clipEvents, sondern leg den loadMovie mit dem entsprechende Zielpfad als Script in einen Schlüsselframe der Hauptzeitleiste, z.B.
ActionScript:
  1. //leeren MC mit Instanznamen con auf der Hauptzeitleiste auf Tief 1 erstellen
  2. this.createEmptyMovieClip("con",1);
  3.  
  4. //und einen MC aus der Bibliothek auf die Bühne holen und in diesen leeren MC legen
  5. this.con.attachMovie("meinBezeichner","meinInstanzname",1);
  6.  
  7. //oder einen MC in diesen leeren MC nachladen
  8. this.con.loadMovie("meinFilm.swf");
  9.  
  10. //wenn gewünscht, dann kann der MC folgendermaßen gelöscht werden
  11. this.con.removeMovieClip();
  Mit Zitat antworten
Alt 02-10-2004, 13:52   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Dresden
Beiträge: 6
Das dürfte die Lösung für ein Problem sein, welches ich eigentlich nicht habe

Ich glaube, wir reden aneinander vorbei. Lass mal gut sein. Vielen Dank und viele Grüße,

slartibartfas
Slartibartfas ist offline   Mit Zitat antworten
Alt 02-10-2004, 14:42   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich hab dich schon richtig verstanden... Clipevents geben halt arge Probleme, wenn sie mehrere Male geladen werden können und nicht alle Variablen wasserdicht daraufhin gecheckt werden. Weiterhin sind Clipevents Relikte aus Flash4-Zeiten und sollten überhaupt nicht mehr genutzt werden, denn dafür gibt es die Zeitleisten-Eventfunktionen onRelease, onPress, onRollOver etc.

Und weiterhin verlierst du sehr schnell die Übersicht, wenn du viele MCs auf deiner Hauptzeitleiste, bzw. viele MCs ineinander verschachtelt hast. Du musst dann ja bei Clipevents alle Objekte anklicken, um überhaupt die Scripte wiederfinden zu können. Wenn du mit Zeitleistenscripten arbeitest, kannst du alle Scripte in einem Frame schön übersichtlich sammeln...
  Mit Zitat antworten
Alt 02-10-2004, 14:55   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Dresden
Beiträge: 6
Jepp, allerdings wollte ich nicht wissen, wie man einen MC lädt. Es ging es hier explizit darum, ob man einen (alten Flash5-) onClipEvent(load)-Hander als Preloader einsetzen kann, weil EventHandler à la movieClip.onSchlagmichtotwasauchimmer logischerweise gelöscht werden nach einem movieClip.loadMovie(...)

Ich wollte halt nur nicht jeden duplizierten MC eine Preloaderschleife mit auf den Weg geben (wie ich es bisher immer gemacht habe):

path.bild.loadMovie(_root.vars_url+path.swf);
path.onEnterFrame = function() {
if (this.bild.getBytesLoaded() == this.bild.getBytesTotal() && this.bild.getBytesTotal()>0) {
trace("Nun ist er geladen")
delete this.onEnterFrame;
}
};

btw.: wie fügt man hier eigentlich formatiertes ActionScript ein

viele grüße, slartibartfas
Slartibartfas ist offline   Mit Zitat antworten
Alt 02-10-2004, 15:38   #8 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Hallo Slartibartfas,

also wenn ich Dich richtig verstehe, dann müsstest Du in Deinem Fall nicht onLoad, sondern onData benutzen.
jeypack ist offline   Mit Zitat antworten
Alt 02-10-2004, 22:52   #9 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
wie fügt man hier eigentlich formatiertes ActionScript ein
Eckige Klammer auf AS Eckige Klammer zu
Script
Eckige Klammer auf /AS Eckige Klammer zu
Aber bitte die echte Klammer setzen, nicht den Text. Ist hier nur zur Demo, sonst würde der ein formatiertes Feld setzen...
  Mit Zitat antworten
Alt 04-10-2004, 11:11   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Dresden
Beiträge: 6
ActionScript:
  1. Ah, danke. Doch noch was gelernt.

Viele Grüße, Dominik


____________________________________
www.schech.net | Visuelle Kommunikation
Slartibartfas 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 02:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele