Omgaan met animatiestaten met Starling

Het Starling Framework is een AS3 API die de displaylijst nabootst, met één cruciaal verschil: het gebruikt de nieuwe functies van Flash Player 11 om alle content door de GPU weer te geven. In deze tutorial leer je om meerdere animaties toe te voegen aan een sprite met behulp van het Starling Framework. Het veronderstelt een basiskennis van het gebruik van spritesheets met Starling.


Eindresultaat voorbeeld

Klik hier om de demo te bekijken waar we naartoe zullen werken. Klik links of rechts van de aap om hem in die richting te laten lopen; merk op hoe het een lopende animatie toont bij het bewegen en een stilstaand beeld bij stilstand.


Initiële code

De bronbestanden van de volledige demo (in zowel de begin- als de eindtoestand) staan ​​in de brondownload. We zullen echter voornamelijk met één bestand werken, MonkeySprite.as, dus hier is de inhoud, ter referentie:

 pakket import flash.utils.getTimer; import starling.animation.Juggler; import starling.core.Starling; import starling.display.MovieClip; import starling.display.Sprite; import starling.events.Event; import starling.textures.Texture; import starling.textures.TextureAtlas; public class MonkeySprite breidt Sprite uit private var stand Film: MovieClip; // staande animatie private var mouseX: Number = -1; // locatie van de muisklik op x-as private var lastTime: int; // laatste onFrame beweging private var movieVector: Vector.; openbare functie MonkeySprite () var atlas: TextureAtlas = Assets.getTextureAtlas (); var standFrames: Vector. = atlas.getTextures ("monkey_1"); standMovie = nieuwe MovieClip (standFrames, 7); standMovie.loop = true; addChild (standMovie); pivotX = this.width * 0.5; this.addEventListener (Event.ENTER_FRAME, onFrame);  public function onFrame (e: Event): void if (mouseX == -1) retour; // snap if (this.x <= mouseX+5 && this.x >= mouseX-5) this.x = mouseX;  else var timeDiff: int = getTimer () - lastTime; lastTime + = timeDiff; if (mouseX> this.x) this.x + = timeDiff * .15;  else this.x - = timeDiff * .15;  openbare functie moveToPoint (pointX: Number): void mouseX = pointX; lastTime = getTimer (); 

Bekijk de Screencast

Hier zijn de URL's vermeld in de video:

  • Het Starling Framework
  • Flash Builder
  • mrdoob's Hi-ReS-Stats
  • Vicki Wenderlich's gratis kunstarchief

Wil je meer Starling-tutorials?

Laat het ons weten in de comments!