ich habe ein problem und komme alleine nicht weiter.
ich lade bilder über eine xml und animiere diese mit tweener.
die animationen sind teilweise sehr langsam und aufgrund dessen
fangen sie an sehr häfitg zu ruckeln.
ich habe die schon mit smoothing = true dring, aber die ruckeln
trotzdem noch wie sau.
scheinbar springt er beim tweenen immer auf ganze pixel.
hey
hast du schon versucht vorher als bitmap zu cachen? object.cacheAsBitmap = true;
oder sind es einfach nur sehr viele tweens gleichzeitig? in dem fall vielleicht nicht alle ladevorgänge mit ner schleife gleichzeitig starten, sondern zeitversetzt.
gruß
flowww.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
der erste teil deines scripts ist irgendwie ein bisschen durcheinander.
du erstellst ne bitmap von deinem loader.content und nutzt ihn dann nicht.
naja gut, vielleicht weils jetzt nur n teil vom script ist.
aber: das gleiche problem habe ich leider auch....
das bitmapCachen führt auch nur zu nem stottern.
leider bringen auch andere tweening-enginges nix. habs getestet...
auch, wenn es nicht sooo schön ist, versuch einfach mal, deine grafik minimal
zu scalieren. also auf 99.9% oder so. dann scheint das smoothing zu greifen.
etwa so:
ActionScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
import caurina.transitions.*;
var loader : Loader = new Loader();
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, completeHandler );
loader.load( new URLRequest( "image.jpg" ) );
function completeHandler( e : Event ):void
{
var image = Bitmap( loader.content );
image.smoothing = true;
image.scaleX = image.scaleY = 0.99;
addChild( image );
auf den loader.content kannst du erst zugreifen, wenn er zur verfügung steht.
es macht sicherlich sinn, das ganze laden auszugliedern...
ich habe mir mal ne klasse geschrieben, die ich eingentlich immer verwende.
habe die mal mit zwei beispielen angehängt. einmal die bilder parallel in einer
schleife geladen, und einmal nacheinander. das macht sinn, wenn du extrem
viele bilder lädst und nicht 1000 ladevorgänge gleichzeitig starten willst...
die klasse nutzt du folgendermaßen:
ActionScript:
1 2 3 4 5
var ci : CustomImage = new CustomImage();
this.addChild( ci );
ci.data = "deinBild.jpg";
ci.addEventListener( "LOAD_INIT", callbackFunction );
ci.load();
instanz erstellen -> auf die bühne werfen -> daten übergeben -> listener hinzufügen -> laden
hey,
ne auf den content kannst du noch nicht zugreifen. nur auf den loader selbst.
es geht aber auch, wenn du sagst meinClip.addChild( loader )
allerdings kannst du später probleme bekommen, wenn du beispielsweise ne swf lädst und nun über meinClip.machWas() mit dem clip kommunizieren willst, weil meinClip nur ne referenz zum loader ist, und nicht zum loader.content. aber egal.
ich hab dir die sachen mal auf cs3 runter gespeichert.
hoffe es klappt jetzt, sonst meld dich ncohmalwww.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
27.08.10, 17:02 The first public build of Flex 4.5, aka Hero is out: http://bit.ly/cIS7TZ Contains new Spark DataGrid, Form, Image, -size-report (@renaun)