Manejo de estados de animación con Starling

Starling Framework es una API de AS3 que imita la lista de visualización, con una diferencia crucial: utiliza las nuevas funciones de Flash Player 11 para representar todo el contenido de la GPU. En este tutorial, aprenderá a agregar múltiples animaciones a un sprite usando el Starling Framework. Asume una comprensión básica del uso de hojas de sprites con Starling..


Vista previa del resultado final

Haga clic aquí para ver la demostración en la que trabajaremos. Haz clic a la izquierda o derecha del mono para que camine en esa dirección; Observe cómo se muestra una animación para caminar cuando se mueve y un marco estático cuando se detiene..


Codigo inicial

Los archivos de origen de la demostración completa (en los estados inicial y final) se encuentran en la descarga de origen. Sin embargo, estaremos trabajando principalmente con un archivo., MonkeySprite.as, Así que aquí están los contenidos, para referencia:

 paquete import flash.utils.getTimer; importación starling.animation.Juggler; import starling.core.Starling; importar starling.display.MovieClip; importar starling.display.Sprite; import starling.events.Event; importar starling.textures.Texture; import starling.textures.TextureAtlas; la clase pública MonkeySprite extiende Sprite private var standMovie: MovieClip; // animación en pie privado var mouseX: Number = -1; // ubicación del clic del mouse en el eje x privado var lastTime: int; // último movimiento onFrame privado var movieVector: Vector.; función pública MonkeySprite () var atlas: TextureAtlas = Assets.getTextureAtlas (); var standFrames: Vector. = atlas.getTextures ("monkey_1"); standMovie = new MovieClip (standFrames, 7); standMovie.loop = true; addChild (standMovie); pivotX = this.width * 0.5; this.addEventListener (Event.ENTER_FRAME, onFrame);  función pública onFrame (e: Evento): void if (mouseX == -1) return; // snap si (este.x <= mouseX+5 && this.x >= mouseX-5) esto.x = mouseX;  else var timeDiff: int = getTimer () - lastTime; lastTime + = timeDiff; if (mouseX> this.x) this.x + = timeDiff * .15;  else this.x - = timeDiff * .15;  función pública moveToPoint (pointX: Number): void mouseX = pointX; lastTime = getTimer (); 

Mira el Screencast

Aquí están las URL mencionadas en el video:

  • El marco de Starling
  • Flash Builder
  • Estadísticas de Hi-ReS de mrdoob
  • Archivo de arte gratuito de Vicki Wenderlich

¿Quieres más tutoriales de Starling?

Háganos saber en los comentarios.!