Flashhilfe.de - Flash Community

langsame animation mit as3 tweener [Flash 9]

Forum > ActionScript 3.0 > langsame animation mit as3 tweener

 


Neues Thema anlegenRegistrierenLogin Seite1 2
 
Lesezeichen
 08.02.2010, 21:50 
Benutzerbild von grische
Beiträge: 55
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....
 
nicht sichtbar für Mitglieder
 08.02.2010, 22:18Re1
Benutzerbild von derFloh
Beiträge: 923
Wohnort: ..::LAGE::..
Registriert: Apr 2006

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ß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
 08.02.2010, 22:34Re2
Benutzerbild von grische
Beiträge: 55
Registriert: Feb 2008

Themenautor/in

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" }
 
nicht sichtbar für Mitglieder
 09.02.2010, 09:50Re3
Benutzerbild von derFloh
Beiträge: 923
Wohnort: ..::LAGE::..
Registriert: Apr 2006

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ß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
Geändert von derFloh am 09.02.10 um 09:53 Uhr

 09.02.2010, 10:02Re4
Benutzerbild von grische
Beiträge: 55
Registriert: Feb 2008

Themenautor/in

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.2010, 21:54Re5
Benutzerbild von grische
Beiträge: 55
Registriert: Feb 2008

Themenautor/in

super dank klappt.

das is doch schräg oder??
 09.02.2010, 22:03Re6
Benutzerbild von derFloh
Beiträge: 923
Wohnort: ..::LAGE::..
Registriert: Apr 2006

ist halt flash! ...muss man nicht checken :)
aber gut dass es klappt!
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring
 
nicht sichtbar für Mitglieder
 09.02.2010, 22:03Re7
Benutzerbild von grische
Beiträge: 55
Registriert: Feb 2008

Themenautor/in

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.2010, 22:32Re8
Benutzerbild von derFloh
Beiträge: 923
Wohnort: ..::LAGE::..
Registriert: Apr 2006

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ß
flo
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring

Angehängte Dateien:
Komprimierte Datei loadingAS3.zip32.62 KB
Geändert von derFloh am 09.02.10 um 22:37 Uhr

 09.02.2010, 22:44Re9
Benutzerbild von grische
Beiträge: 55
Registriert: Feb 2008

Themenautor/in

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....
 
nicht sichtbar für Mitglieder
 09.02.2010, 22:51Re10
Benutzerbild von derFloh
Beiträge: 923
Wohnort: ..::LAGE::..
Registriert: Apr 2006

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 ncohmal
www.heimatdesign.com
Florin Sans - Buy on myFonts / Fontspring

Angehängte Dateien:
Komprimierte Datei loadingAS3.zip32.79 KB
Geändert von derFloh am 09.02.10 um 22:51 Uhr

 
Themen
Ähnliche Beiträge zum Thema
caurina tweener problem [Flash 9] 09.02.2009 - jowaslos
 
Lesezeichen
Neues Thema anlegenRegistrierenLogin Seite1 2

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de | Designnation.de | Flashstar.de | Flex UG | Mediengestalter.info | php-resource.de | phpforum.de | phpwelt.de | Pixelio.de | PSD-Tutorials.de | Tutorials.de

Haftungsausschluss - Datenschutzerklärung - Hier Werben - Impressum
© Sebastian Wichmann - Flashhilfe.de - 1999-2010