• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-02-2007, 12:12   #1 (permalink)
Neuer User
 
Benutzerbild von blaupause
 
Registriert seit: Jul 2003
Beiträge: 38
MovieClipLoader aus MovieClipLoader aufrufen

Hallo Leute,

vielleicht fällt Euch spontan ein, was da falsch ist:
Ich habe einen MCL, der immer auf _level1 den jeweils benötigten Inhaltsfilm lädt (das alles kommt aus einer xml, deren attribute am menuBtn angehängt sind). Bei manchen Filmen kommt es nun vor, das ein Bild in einen Bildcontainer geladen weden muss, daher habe ich einen extra MCL für diese Bilder geschrieben, denn onLoadInit soll andere Sachen machen als die des Haupt-MCL zum Laden des Level1.
Nur: der imageListener, den ich aus dem ersten MCL aus aufrufe, wird nie ausgeführt. Warum?

Code:
/*********************************Loader Bilder************************************/
//init
var image_MCL = new MovieClipLoader();
var image_MCL_Listener = new Object();
//callbacks
image_MCL_Listener.onLoadStart = function(targetMC) {
	trace("image_MCL_Listener start"+targetMC);//-> geht nicht
	};
image_MCL_Listener.onLoadProgress = function(targetMC, loadedBytes, totalBytes) {
	var prozent = Math.round((loadedBytes/totalBytes)*100);
	};
image_MCL_Listener.onLoadComplete = function(targetMC) {
		targetMC.geladen = true;
};
image_MCL_Listener.onLoadInit = function(targetMC) {
	trace("image_MCL_Listener "+targetMC);//-> geht nicht
	targetMC._height = 130;
	targetMC._xscale = targetMC._yscale;
};
image_MCL_Listener.onLoadError = function(targetMC, errorCode) {
	//ladeAnzeige("error");
};
image_MCL.addListener(image_MCL_Listener);
/***************level1 loader************/
//init
var myMCL = new MovieClipLoader();
var myListener = new Object();
myListener.onLoadStart = function(targetMC) {
	ladeAnzeige("loading content");
	//var loadProgress = myMCL.getProgress(targetMC);
};
myListener.onLoadProgress = function(targetMC, loadedBytes, totalBytes) {
	var prozent = Math.round((loadedBytes/totalBytes)*100);
	ladeAnzeige("loading content "+prozent+" %");
};
myListener.onLoadComplete = function(targetMC) {
	//ladeAnzeige(targetMC+" complete");
	targetMC.geladen = true;
	//ladeAnzeige("");
	//var loadProgress = myMCL.getProgress(targetMC);
};
myListener.onLoadInit = function(targetMC) {
	ladeAnzeige("");
	//wenn _level1 geladen ist,  hauptText_txt füllen
	if (this.texte != undefined && this.texte != "") {
		_level0.text_xml.load(this.texte);
	}
	if (this.tooltips != undefined && this.tooltips != "") {
		_level0.tooltip_xml.load(this.tooltips);
	}
	if (this.bild != undefined && this.bild != "") {
		trace("myMCL "+this.bild); //-> geht
		_level1.image_MCL_Listener.loadClip(this.bild, "_level1.bildcontainer_mc.bild_mc");
		//loadMovie(this.bild, "_level1.bildcontainer_mc.bild_mc");
	}
	if (this.btn.showChosen != undefined && this.btn.showChosen != "") {
		_level0.faerbeBtnNachTitle(this.btn.showChosen);
		chosenBtn = _level0.searchBtn(this.btn.showChosen);
		_global.chosenBtn = _level0[chosenBtn];
	}
};
myListener.onLoadError = function(targetMC, errorCode) {
	ladeAnzeige("error loading "+targetMC);
};
myMCL.addListener(myListener);
Danke für Eure Hilfe!
blaupause ist offline   Mit Zitat antworten
Alt 23-02-2007, 13:30   #2 (permalink)
liebt Skorpionin
 
Benutzerbild von Skorpion
 
Registriert seit: Apr 2003
Beiträge: 1.258
Code:
_level1.image_MCL_Listener.loadClip(this.bild, "_level1.bildcontainer_mc.bild_mc")
Ich denke, das kann nicht funktionieren, weil du image_MCL_Listener nicht auf _level1 angelegt hast, sondern auf _root (oder eben _level0).

Dann frage ich mich, ob man als zweiten Parameter wirklich einen String übergeben darf..? Hier wird doch ein Objekt erwartet?

PHP-Code:
_root.image_MCL_Listener.loadClip(this.bild_level1.bildcontainer_mc.bild_mc); 
Skorpion ist offline   Mit Zitat antworten
Alt 23-02-2007, 13:31   #3 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
trace("image_MCL_Listener start"+targetMC);//-> geht nicht
Du hast ja auch noch gar keinen Ladevorgang mit loadClip() initialisiert...

Zitat:
_level1.image_MCL_Listener.loadClip(this.bild, "_level1.bildcontainer_mc.bild_mc");
Einen weiteren Level kannst du nur mit loadMovieNum erstellen, ansonsten wird alles auf Level 0 geladen. Wobei weitere Level natürlich total überflüssig sind, du kannst auf leere MCs auf Level 0 genausogut nachladen, bspw.:
PHP-Code:
this.createEmptyMovieClip("con",1);//leerer MC auf Level 0, Tiefe 1

var mclListener:Object = new Object();
mclListener.onLoadInit = function(target:MovieClip) {
   
trace("target="+target);
}

var 
con_mcl:MovieClipLoader = new MovieClipLoader();
con_mcl.addListener(mclListener);
con_mcl.loadClip("mein.jpg"con); 
  Mit Zitat antworten
Alt 23-02-2007, 17:21   #4 (permalink)
Neuer User
 
Benutzerbild von blaupause
 
Registriert seit: Jul 2003
Beiträge: 38
Danke Euch für die Antworten!
[_level1. image_MCL_Listener war ein Schreibfehler nur hier]
Aber auch mit
_level0.image_MCL_Listener.loadClip(this.bild, "_level1.bildcontainer_mc.bild_mc") und mit
image_MCL_Listener.loadClip(this.bild, "_level1.bildcontainer_mc.bild_mc")geht nix.

Der _level1 wurde vorher schon (von einer anderen Funktion ausgelöst) erfolgreich mit dem myMCL geladen. Wenn er geladen ist (bei LoadInit), soll dann das Bild geladen werden mit dem imgListener. this.bild kommt auch bis zum _level1-Loader durch, nur dann, beim imageListener kommt das nicht mehr an (siehe trace bei beiden Loadern).
Also, alles andere funktioniert wunderbar, nur der imageListener tut nix.

Übrigens, die gleiche Übergabe wie bei this.bild mache ich schon vorher mehrere Male an den _level1-Loader, ich übergebe den Pfad aus einer xml-Datei (für die Filmdatei u.v.a.m), läuft perfekt.
blaupause ist offline   Mit Zitat antworten
Alt 25-02-2007, 15:51   #5 (permalink)
Neuer User
 
Benutzerbild von blaupause
 
Registriert seit: Jul 2003
Beiträge: 38
Abschließend meine Lösung:
Warum auch immer, aber wenn ich den MCL der Bilder nicht über einen eigenen Listener anspreche, sondern direkt, dann funktioniert alles wunderbar…

Hier der Code meiner Lösung:

Code:
//myListener ist wie gehabt der Listener der Level1-Filme, sind die erfolgreich geladen, dann:
myListener.onLoadInit = function(targetMC) {
	//this.btn.bild ist eine var im LadeBtn, die ich beim LadeBtn-Klick an den Listener weiterreiche
	if (this.btn.bild != undefined && this.btn.bild != "") {
		imgMCL.loadClip(this.btn.bild, "_level1.bildcontainer_mc.bild_mc");
	}
	
};
Ausschnitt aus dem imgMCL:
Code:
var imgMCL = new MovieClipLoader();
imgMCL.onLoadStart = function(targetMC) {
	var loadProgress = imgMCL.getProgress(targetMC);
	ladeAnzeige("onLoadStart "+targetMC);
	};

imgMCL.onLoadInit = function(targetMC) {
	ladeAnzeige("onLoadInit "+targetMC);
	targetMC._width = 170;
	targetMC._height = 170;
	};

imgMCL.onLoadError = function(targetMC, errorCode) {
	ladeAnzeige("ERROR:"+errorCode);
};
Vielleicht weiß einer von Euch, warum der imgMCL-Listener da nicht funktioniert? Ich hab es jetzt zwar anders gelöst, aber interessieren würde mich das natürlich.

Und: danke für Eure Anregungen.

Geändert von blaupause (25-02-2007 um 15:57 Uhr)
blaupause 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 04:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele