Starling Framework este un API AS3 care imită lista de afișare, cu o singură diferență crucială: folosește noile caracteristici ale Flash Player 11 pentru a face tot conținutul de către GPU. În acest tutorial, veți învăța să adăugați mai multe animații unui sprite folosind Starling Framework. Acesta presupune o înțelegere de bază a folosirii foilor de sprite cu Starling.
Faceți clic aici pentru a vedea demo-ul la care vom lucra. Faceți clic pe stânga sau la dreapta maimuței pentru ao face să meargă în această direcție; observați modul în care se afișează o animație în mișcare atunci când se mișcă și un cadru static când stați în picioare.
Întregul fișier sursă al demo-ului (atât în starea inițială, cât și în cel final) se află în descărcarea sursei. Cu toate acestea, vom lucra în principal cu un fișier, MonkeySprite.as
, așa că aici sunt conținutul, pentru referință:
pachet import flash.utils.getTimer; import starling.animation.Juggler; importul starling.core.Starling; importul starling.display.MovieClip; import starling.display.Sprite; importul starling.events.Event; importul starling.textures.Texture; importul starling.textures.TextureAtlas; clasa publica MonkeySprite extinde Sprite private var standMovie: MovieClip; // animație în picioare private var mouseX: Number = -1; // locația clicului mouse-ului pe axa x private var lastTime: int; // last onFrame circulație private var movieVector: Vector.; funcția publică MonkeySprite () var atlas: TextureAtlas = Assets.getTextureAtlas (); var standFrame: Vector. = atlas.getTexturi ("monkey_1"); standMovie = nouClipClip (standFrames, 7); standMovie.loop = true; addChild (standMovie); pivotX = această lățime * 0.5; this.addEventListener (Event.ENTER_FRAME, onFrame); funcția publică onFrame (e: Event): void if (mouseX == -1) retur; // snap if (this.x <= mouseX+5 && this.x >= mouseX-5) this.x = mouseX; altfel var timeDiff: int = getTimer () - lastTime; lastTime + = timeDiff; dacă (mouseX> this.x) this.x + = timeDiff * .15; altceva this.x - = timeDiff * .15; funcția publică moveToPoint (pointX: Number): void mouseX = pointX; lastTime = getTimer ();
Iată URL-urile menționate în videoclip:
Spuneți-ne în comentariile!