loadMovie container passt sich nicht an

kingschnulli

Grünschnabel
Hallo,

Ich versuche ein Bild dynamisch in einen Container zu laden und diesen dann zu skalieren.
Er lädt das Bild einwandfrei in den Container doch leider kann ich anschließend nichts mehr daran machen. Wie Stelle ich eine ordentliche referenz darauf her mit der ich dann arbeiten kann. Ich habe schon alles versucht was die Suchfunktion und andere Foren hergegeben haben aber es klappt einfach nicht. Ich bitte um eure Hilfe !

Code:
//Die referenzierung auf das Bild funktioniert einwandfrei, nur komme ich anschließend nicht //mehr an das Bild ran. Auf der Bühne liegt bereits der MC art1(2,3,4...) der die MCs art_image und //img_src enthält.

var meinbild:MovieClip = loadMovie(artikel2[f-1].bildpfad, eval("art"+f+".art_image.img_src"));
set(meinbild._width,10);

mfg
kingschnulli
 
Hi,

1. warum verwendest Du die veraltete (Flash 4 und darunter) "set"-Methode, wenn Du anscheinend schon mit AS2.0 arbeitest?

2. Du musst darauf warten, dass der Film komplett geladen ist, bevor Du ihn skalierst, sonst wird Deine Skalierung überschrieben (Ladevorgang ist - besonders online - schneller beendet als die Zeitspanne zwischen zwei AS-Zeilen). Dazu kannst Du z.B. eine onEnterFrame-Methode verwenden, die entweder getBytesLoaded/getBytesTotal vergleicht, oder die Maße des Containers (ist 0, bis was geladen ist) abfragt.

Gruß
.
 
ok also wie du angeraten hast habe ich das set rausgenommen und das ganze mit der MovieClipLoader Klasse geregelt. Leider funktioniert es immer noch nicht, aber ich vermute dass das damit zu tun hat das mein AS in einer for-schleife abgehandelt wird und schon zum nächsten Objekt aus dem Array springt bevor er fertig geladen ist. Was ich auch vergessen habe zu erwähnen ist das das Script in einer function liegt die von einem LoadVars.onLoad angestoßen wird liegt. Wäre es eventuell besser die Variablen aus der LoadVars Funktion seperat zu verarbeiten, wenn ja wie bekomme ich sie raus aus dem Objekt ?

Hier mal die gesamte Funktion:
Code:
function getarticles() {
//Erst wird eine Hinweismeldung gesetzt und dann das LoadVars Objekt erzeugt das nach dem es fertig geladen hat die Objekte verarbeitet

msg_ta.text = "Lade Artikel ...";
var select_lv2:LoadVars = new LoadVars();
select_lv2.onLoad = function(ok:Boolean) {
if (ok) {
if (this.errorcode == "0") {
var artikel2:Array = [];
//Hier wird mein Objektarray gefüllt
for (var i:Number = 0; i<this.n; i++) {
artikel2.push({record:this["products_id"+i], produktname:this["products_name"+i], preis:Number(this["products_price"+i]), bildpfad:"images/product_images/thumbnail_images/"+this["products_image"+i]});
}
//Anschließend sollen alle Objekte in diesem Array verarbeitet werden
for (var f = 1; f<=9; f++) {
if (f>this.n) {
break;
}
set("art"+f+".header.text", artikel2[f-1].produktname);
set("art"+f+".preistext.text", artikel2[f-1].preis+" €");
var meinloader:MovieClipLoader = new MovieClipLoader();
var ladevorgang:Object = new Object();
ladevorgang.onLoadComplete = function(target_mc:MovieClip) {
target_mc._xscale = 0.5;
target_mc._yscale = 0.5;
};
meinloader.addListener(ladevorgang);
meinloader.loadClip(artikel2[f-1].bildpfad);
set("art"+f+"._alpha", 100);
}
			} else {
				// show kind of error
				msg_ta.text = errorMsgs[Number(this.errorcode)];
				// if query error, show mysql_error
				if (this.errorcode == "3") {
					msg_ta.text += ": "+this.msg;
				}
			}
		} else {
			// if loadvars failed (eg, if script not found)
			msg_ta.text = "Datenbank Aufruf fehlgeschlagen(2) !";
		}
	};
	if (categories_cb.selectedIndex == undefined) {
		categories_cb.selectedIndex = 0;
	}
	msg_ta.text = "Lade Artikel aus Kategorie "+select_lv2.akt_cat;
	select_lv2.akt_cat = categories_cb.selectedItem.data;
	select_lv2.sendAndLoad(filepath+"fshop_getdata.php", select_lv2, "POST");
}
 
Hi,

der Code ist für mich extrem unübersichtlich - zum einen durch die fehlende Einrückung, zum anderen durch die krude Mischung aus AS2.0 und Flash4-Syntax... das macht es ziemlich schwer, den Fehler zu finden. Vielleicht erstellst Du erstmal eine Dummy-Umgebung und testest die einzelnen Funktionen seperat.

Aufgefallen ist mir auf den ersten Blick folgendes:
Code:
target_mc._xscale = 0.5;
das sind 0.5% der Ursprungsgröße - ist das gewollt?

Zum anderen funktionieren die Ereignishandler der MovieClipLoader-Klasse m.E. nicht in der Flash-internen Vorschau. Du müsstest das ganze schon im Browser testen.

Gruß
.
 
Ok ich werde das ganze nocheinmal in einer seperaten Umgebung testen und mich nochmal melden wenn ich das getan habe, vielen dank für deine Hilfe ersteinmal.
 
Zurück