bild skalieren

tomaso

Grünschnabel
hallo an alle

lade ein bild extern in einen "emptyMovieClip". funktioniert alles wunderbar. zusätzlich möchte ich das bild aber auch in der grösse anpassen können. über "_xscale / _yscale" lässt sich jedoch die grösse nur über prozentwerte der ursprungsgrösse devinieren. ich würde jedoch gerne die grösse des bildes durch pixel bestimmen, unabhängig davon wie gross das ursprungsbild ist. habe es auch mit "_width / _height" probiert, scheint bei bildern aber nicht zu funktionieren.

weiss jemand wie das geht?... danke für eure hilfe
 
Vorab ... schau dir doch bitte mal den getoppten Thread hier an: http://www.tutorials.de/tutorials105399.html . Danke.

Zum Thema:
Den Movieclip, in den du die externe Datei hineinlädst, kannst du auch mit _width und _height verändern. Wichtig dabei ist, dass du das erst tust, wenn auch etwas geladen ist - online dauert das schon mal eine Weile.
Also mußt du vorher abfragen, ob auch schon etwas vorhanden/geladen ist, dessen Breite und Höhe du einstellen kannst.

Gruß
Rena
 
Hallo,
ich arbeite auch gerade an dem Problem.
Das mit den Preloadern wollte ich später auch noch machen, erstmal dachte ich mir, php kann mir doch auch die Pixelmaße der JPGs mitübergeben, mit denen kann ich dann rumrechnen und dann auch mit _xscale ... klarkommen.
nun habe ich folgendes zusammengezimmert:
PHP:
myinfo=myPHPdaten.split("#");  
// PHP liefert eine Liste mit Dateiname:Breite:Höhe# ...n

oldbreite=20;
for(i=1; i < (myinfo.length-1); i++){
myfoto=myinfo[i].split(":");	// Pixelmaße von Dateinamen trennen
myscale = ((100/number(myfoto[2]))*100);  // errechnet Scalefaktor fürs JPG um alle auf gleiche Höhe (100 Pixel) zu skalieren
xw=xw+oldbreite+3; // errechnet Abstand der Clips

_root.rahmen.duplicateMovieClip("rahmen"+i,i);   // rahmen ist ein Kasten mit Rahmen als Bildrahmen
_root["rahmen"+i]._x = xw;  // mcs in eine Reihe setzen
_root["rahmen"+i]._y = 250; 
 _root["rahmen"+i]._width=myfoto[1]*myscale/100;   // rahmen auf  Fotohöhe skalieren (eigentlich Quatsch da ich die Höche ja generell auf 100 skaliere)
_root["rahmen"+i]._height=myfoto[2]*myscale/100;   // rahmen auf Fotobreite skalieren
_root["rahmen"+i].createEmptyMovieClip("Container", 100);  // in rahmen mcs erzeugen für die JPGs
 _root["rahmen"+i].Container._width=myfoto[1]*myscale/100;  // wenn diese Zeile drin ist kann ich keine Bilder im fertigen Film sehen
_root["rahmen"+i].Container._height=myfoto[2]*myscale/100;
_root["rahmen"+i].Container.loadMovie("fotos/"+myfoto[0]);

oldbreite=(number(myfoto[1])*myscale/100);  // Breite des letzten Bildes für den Abstand zum nächsten merken
}

wenn ich den _root.["rahmen"+i].Container._width anwende sind keine Bilder zu sehen. ich frage mich, ob ich irgendeine Gültigkeit nicht kapiere oder ich schlicht und einfach nicht weiß wohin er meine Container skaliert.
ich gehe davon aus, dass der Container mit seinem Nullpunkt auf den Nullpunkt von rahmen+i gesetzt wird. (?) und ich eigentlich auch mit dem gleichen scale-faktor auf die gleiche Größe komme (?) also sich rahmen und Container in Größe und Position decken müßten .(?)

Falls notwendig, bitte alle Augen zudrücken, bezüglich der Formatierung und des Codes ansich. Für Hinweise auch diesbezüglich wäre ich dankbar.

gruß
frank
 
aber die JPGs müssen trotzdem vorher fertig geladen sein um den Container zu skalieren, stimmts ?
Wird denn der Container erst skaliert aber dann, wenn das JPG reingeladen wird verliert er diese Größe und nimmt die vom JPG an ?

gruß
frank

Heureka !
man darf dann den Container nicht innerhalb des rahmens haben, weil er die Skalierung des rahmens "erben" würde und dadurch doppelt skaliert wird.
 
Zuletzt bearbeitet:
Zurück