ich lade Bilder dynamisch ein einen MovieClip. Beim Skalieren wird dieser aber pixelig.
Durch smoothing kann ich das ja ändern, aber leider schaffe ich es nicht.
mein Code:
ActionScript:
1 2 3 4 5 6 7 8
var loader:Loader = new Loader();
loader.load(new URLRequest(bilder<i>.dateiname));
Kann ich smoothing auf einen MovieClip überhaupt anwenden.
Ich habe auch schon versucht das Bild als Bitmap zu laden, aber da habe ich leider keinen Code zusammenbekommen der funktioniert hat.
die bitmap klasse verfügt über diese eigenschaft...
wenn das bild geladen ist, nimmst du die bitmapdatan
und schreibst eine bitmap davon. die attachest du auf
die bühne...
ActionScript:
1 2 3 4 5 6
var bmd:BitmapData = new BitmapData( clip.width, clip.height );
bmd.draw( clip );
var clone:Bitmap = new Bitmap( bmd, "auto", true );
addChild( clone );
//irgendwie so
Bitmap(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false)
Initializes a Bitmap object to refer to the specified BitmapData object.
hey, wenn du von extern lädst, ists gar nicht viel anders. du kannst direkt die bitmap aus deinem loader.content erstellen:
bitMap = Bitmap( loader.content );
im anhang ein beispiel...
das ergebnis sieht so aus:
das Script funktioniert eigentlich wunderbar.
Ich rufe in einer Schleife die Funktion mehrere Male auf, leider added er mir immer nur das letzte Bild auf die Bühne, ich weiss nicht woran das liegt...
// Eigenschaften vergleichen und dann ggf hinzufügen
var my_array:Array = bilder<i>.eigenschaften.split(",");
my_array.sort();
var eigenschaftaktiv = false;
for (var o:int = 0; o < my_array.length; o++) {
if (my_array[o] == eigenschaftsWort) {eigenschaftaktiv = true;}
}
// Bilder hinzufügen wenn Eigenschaftswort aktiv ist
if (eigenschaftaktiv == true) {
var BilderSprite = new BilderListe();
BilderSprite.x = -500;
BilderSprite.y = -500;
bilderClips.addChild(BilderSprite);
var Bild1 = new bildClip();
BilderSprite.addChild(Bild1);
var bitMap:Bitmap;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoaded );
hey
das mag wohl sein, du startest ja auch alle ladevorgänge gleichzeitig.
das ist gar nicht so schick alles in eine schleife zu packen. und dann noch die funktion innerhalb der schleife etc.
habe gerde keine zeit das umzuschreiben (musst du auch selbst üben :) ... lass die schleife weg, und start die ladevorgänge nacheinander! also eine function die das laden startet und eine, die du beim complete aufrufst... dann definierst du eine variable außerhalb und zählst die einfach hoch.
also