| |
08.02.10 21:50
Beiträge: 50 Registriert: Feb 2008
 | langsame animation mit as3 tweener hi zusammen,
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.
weiß jemand wie ich das umgehen kann
schonmal vielen dank.... |
| | |
| |
| Anzeige |
|
| |
08.02.10 22:18
Beiträge: 879 Wohnort: ..::LAGE::.. Registriert: Apr 2006
 | Re1 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
blog.heimatdesign.com |
| | |
| |
08.02.10 22:34
Beiträge: 50 Registriert: Feb 2008
 | Re2 danke aber, bringt leider nicht.
ich mach ja auch schon ein bitmap draus: var bitMap = Bitmap(imageLoader.content);
und nein ich hab nur eine animatioon laufen.
hier mal der code. evtl findet ja jemand einen fehler:
ActionScript:1 2 3 4 5 6 7 8 9 | var bitMap = Bitmap(imageLoader.content);
var imageTween:imageloader = new imageloader();
bitMap.smoothing = true;
imageTween.smoothing = true;
addChild(imageTween);
imageTween.addChild(imageLoader);
Tweener.addTween( imageTween, { x:-(imageTween.width-960), y:-(imageTween.height-400), time:20, transition:"linear" }
|
|
| | |
| |
09.02.10 09:50
Beiträge: 879 Wohnort: ..::LAGE::.. Registriert: Apr 2006
 | Re3 hey,
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 );
Tweener.addTween( image, {y:image.y+500, time:50, transition:"linear"} );
}
|
schau mal obs bei dir klappt
hier nochmal die daten:
test.zip (41.41 KB)
gruß
flowww.heimatdesign.com
blog.heimatdesign.com |
| | Geändert von derFloh am 09.02.10 um 09:53 Uhr
| |
|
| |
09.02.10 10:02
Beiträge: 50 Registriert: Feb 2008
 | Re4 ok versuch ich mal.
kanns leider erst heute abend testen, aber schonmal vielen dank.
meld mich dann heute abend ob es was gebracht hat.
gruß |
| | |
| |
09.02.10 21:54
Beiträge: 50 Registriert: Feb 2008
 | Re5 super dank klappt.
das is doch schräg oder?? |
| | |
| |
09.02.10 22:03
Beiträge: 879 Wohnort: ..::LAGE::.. Registriert: Apr 2006
 | Re6 ist halt flash! ...muss man nicht checken :)
aber gut dass es klappt!www.heimatdesign.com
blog.heimatdesign.com |
| | |
| |
09.02.10 22:03
Beiträge: 50 Registriert: Feb 2008
 | Re7 jetzt hab ich aber noch eine frage.
wenn ich das in einer schleife anwende. wie mach ich das denn?
ihr mein versuch:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | for(var i:int=0; i<promiXML.*.length(); i++){
var loader:Loader = new Loader();
loader.load(new URLRequest (promiXML.image.path[i].text()));
pv[i] = new MovieClip;
var bitMap = Bitmap(loader.content);
bitMap.smoothing = true;
bitMap.scaleX=bitMap.scaleY=0.99
pv[i].addChild(loader);
pv[i].alpha=0
addChild(pv[i]);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, tweenImages);
}
|
da giebt der mir aber einen fehler.
was mach ich da falsch? |
| | |
| |
09.02.10 22:32
Beiträge: 879 Wohnort: ..::LAGE::.. Registriert: Apr 2006
 | Re8 hey,
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
hoffe das hilft dir weiter.
gruß
flowww.heimatdesign.com
blog.heimatdesign.com
Angehängte Dateien:
|
| | Geändert von derFloh am 09.02.10 um 22:37 Uhr
| |
|
| |
09.02.10 22:44
Beiträge: 50 Registriert: Feb 2008
 | Re9 danke, leider kann ich deine beispiele nicht öffnen,
da ich cs3 habe...
kann ich das "loader.content" nich in meiner normalen schleife anwenden?
sorry für die mühe.... |
| | |
| |
09.02.10 22:51
Beiträge: 879 Wohnort: ..::LAGE::.. Registriert: Apr 2006
 | Re10 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
blog.heimatdesign.com
Angehängte Dateien:
|
| | Geändert von derFloh am 09.02.10 um 22:51 Uhr
| |
|
| |
24.02.10 16:12
Beiträge: 46 Registriert: Jul 2006
 | Re11 hey flo, danke für dein script. Was muss ich ändern, damit es nicht der reihenfolge nach sondern zufällig lädt.
Grüsse |
| | |
| |
24.02.10 19:55
Beiträge: 879 Wohnort: ..::LAGE::.. Registriert: Apr 2006
 | Re12 hey,
sortier einfach dein array um...
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var a : Array = new Array( "1", "2", "3", "4", "5" );
var randomArray : Array = new Array();
trace( "before: " + a );
while( a.length > 0 )
{
var i : int = Math.floor( Math.random()*a.length );
randomArray.push( a[i] );
a.splice( i, 1 );
}
trace( "after: " + randomArray );
|
gruß
flowww.heimatdesign.com
blog.heimatdesign.com |
| | |
| |
| Ähnliche Themen |
Animation soll per Stop Button angehalten werden (Flash 10) caurina tweener problem (Flash 9) Banner beginnt nicht wieder von vorne (Flash 9) Problem mit Tweener bezüglich absoluter und relativer Position (Flash 10) |
| |