_width und _height nach dynamischen loadMovie wird ignoriert

L2DC

Grünschnabel
hallo alle miteinander,

ich hab da ein Problem mit geladenen Bildern in ein mc

1. sind die Pfade (url) der Bilder in einer Datenbank gespeichert
2. holt sich das php die Informationen und speichert sie als XML
3. holt sich das swf die Url aus der erstellten XML
4. läd die Bilder und soll sie anzeigen

alles funktioniert bis dahin
wo ich stecke ist, wenn ich versuche die Bilder auf 100px Breite anzupassen brauch ich erstmal selbst die Breite der Bilder doch *_mc._width liefert mir immer 0 zurück.

Zuerst probierte ich es normal zu skalieren, hatte auch funktioniert,
doch da ich dann erfahren habe das die Bilder unterschiedlich groß sind,
müsste ich es manuell skalieren.
Jetzt frag ich mich warum _xscale zb funktioniert aber _width nicht, ist irgendwie unlogisch.

Ich hab mit Hilfe v. Google hier einige ähnliche probleme gefunden, doch da wurde nur darauf hingewiesen das nach einem loadMovie() gewartet werden muss bis fertig geladen wurde und dann erst Größe abgefragen werden kann
->versuchte deshalb auch einige preloader und sonstige Sachen die eben geraten wurden, doch leider hatte nichts geholfen


hier ausschnitte

Hier hol ich die Pfade aus dem XML/PHP nach betätigen eines Buttons
on (press) {

var xmlReply:XML = new XML();
xmlReply.ignoreWhite = true;
xmlReply.onLoad = myOnLoad;

var xmlRequest:XML = new XML("<input />");
xmlRequest.sendAndLoad("http://localhost/MyPages/Bilderdb/bildertoXML.php", xmlReply);

Hier geh ich das XMLfile durch und erstelle damit die MovieClip Bilder
function myOnLoad(success:Boolean) {
if (success) {
// XML Baum durchsuchen und Daten auswerten
var childNode:XMLNode = xmlReply.firstChild;
for(var bilderNode:XMLNode = childNode.firstChild; bilderNode != null; bilderNode=bilderNode.nextSibling){
_root.createEmptyMovieClip("image_mc_"+_root.depth, _root.depth);
_root["image_mc_"+_root.depth].loadMovie(bilderNode.attributes.url);
_root.depth++;

}

Wenn ich jetzt zum beispiel nach dem loadMovie ein trace von _root["image_mc_"+_root.depth]._width stehen hab bekomme ich immer 0 :confused:

also vieleicht kann mir da irgendwer behilflich sein

vielen dank schonmal im voraus !
 
Wenn ich jetzt zum beispiel nach dem loadMovie ein trace von _root["image_mc_"+_root.depth]._width stehen hab bekomme ich immer 0
Ja, da zu diesem Zeitpunkt (direkt nach der loadMovie-Aktion) das Bild noch nicht geladen ist, und daher keine Maße zur Verfügung stehen.

Der Einsatz der MovieClipLoader-Klasse dürfte Dir das Leben vereinfachen:
Code:
var mcl = new MovieClipLoader();

mcl.onLoadInit = function() {
  // hier ist das Bild komplett geladen, und wir können es skalieren:
  ct._width = 320;
  ct._height = 240;
}

mc.loadClip("bild.jpg", ct);

Gruß
.
 
sowas ähnliches hatte ich schon einmal probiert, aber ich kanns gern nochmal probieren und posten wenn ich was falsch dabei mache kann mir sicher geholfen werden.

danke vorallem für die antwort
 
also ich hab das jetzt probiert, am anfang war es nicht richtig, bis ich darauf gekommen bin, das ich alles in einen MovieClipLoader haun kann und im Init dann erst das nächste lade, das war ein denkfehler von mir.

Danke nochmals :)
 

Neue Beiträge

Zurück