Flash Pro CC, Starlingでスプライトシートを使ったアニメーション

Flash Pro CC, Starlingでスプライトシートを使ったアニメーション

Flash Pro CC, Starlingでスプライトシートを使ったアニメーション : デモ

Flash Pro CC, Starlingでスプライトシートを使ったアニメーション : ZIPファイル(151kb)

1.Main.fla

1. Flashコンテンツのパフォーマンスをグラフ化するstatsをダウンロードします。

statsサイト(外部サイト):http://github.com/mrdoob/Hi-ReS-Stats

2. Flash Professional CC にダウンロードしたstatsファイルを以下のように、Flashメニューから設定します。

Flash – 環境設定 – コンパイラー – ソースパス で、Hi-ReS-Stats-master/src を設定します。

3. Starlingファイルをダウンロードします。

Starlingサイト(外部サイト):http://gamua.com/starling/

4. Flash Professional CC にダウンロードしたstarlingファイルを以下のように、Flashメニューから設定します。

Flash – 環境設定 – コンパイラー – ソースパス で、starling/src を設定します。

Flash – 環境設定 – コンパイラー – ライブラリパス で、starling/bin を設定します。

5. プロパティのクラスに「StartUp」を記述します。

2.StartUp.as

プログラム言語は、ActionScript3.0です。

package
{
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import starling.core.Starling;
	import net.hires.debug.Stats;
	
	public class StartUp extends Sprite
	{
		private var mStarling:Starling;
		
		public function StartUp()
		{
			//fps計測用クラス
			addChild(new Stats());
			
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			
			//starlingインスタンスの作成
			mStarling = new Starling(SpriteSheet, stage);
			
			//アンチエイリアスの設定 0:アンチなし、2:最小限のアンチエイリアス、4:高品質、6:最高品質
			mStarling.antiAliasing = 2;
			
			//スタート
			mStarling.start();
		}
	}
}

3.SpriteSheet.as

package
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.net.*;
	import flash.events.Event;
	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 SpriteSheet extends Sprite
	{
		private var mMovie: MovieClip;
		
		//[Embed(source = "walk.xml", mimeType = "application/octet-stream")]
		//public static const SpriteSheetXML: Class;
		
		//Flash Bulderを使う場合
		//[Embed(source = "walk.png")]
		//private static const SpriteSheetClass: Class;
		
		private var xml:XML;
		private var urlLoader:URLLoader;
		private var texture: Texture;
		
		public function SpriteSheet()
		{
			//addEventListener(Event.ADDED_TO_STAGE, onAdded);
			// 埋め込みビットマップを作成(スプライトシートファイル)
			//var bitmap: Bitmap = new SpriteSheetClass();
			// ビットマップからテクスチャを作成
			//var texture: Texture = Texture.fromBitmap(bitmap);
			
			//Flash IDEのライブラリ画像を使う場合
			var walkBitmapData:BitmapData = new Walk(0, 0);
			var walkBitmap:Bitmap = new Bitmap(walkBitmapData);
			// ビットマップからテクスチャを作成
			texture = Texture.fromBitmap(walkBitmap);
			
			// スプライトシートのフレームの詳細を表すXML ファイルを作成
			//var xml: XML = XML(new SpriteSheetXML());
			
			var urlRequest:URLRequest = new URLRequest("walk.xml");
			urlLoader = new URLLoader();
			urlLoader.addEventListener(Event.COMPLETE, completeListener);
			urlLoader.load(urlRequest);
		}
		
		/*private function onAdded(e: Event): void
		{
			
			
			
			
		}*/
		
		private function completeListener(e:Event):void
		{
			xml = new XML(urlLoader.data);
			// テクスチャアトラスを作成(スプライトシートとXML の記述をリンクさせる)
			var sTextureAtlas: TextureAtlas = new TextureAtlas(texture, xml);
			// 歩行者のフレームを取得
			var frames: Vector.<Texture> = sTextureAtlas.getTextures("walkman_");
			// 8fps で再生するMovieClip を作成
			mMovie = new MovieClip(frames, 8);
			// MovieClip をセンターに置く
			mMovie.x = stage.stageWidth - mMovie.width >> 1;
			mMovie.y = stage.stageHeight - mMovie.height >> 1;
			// 表示
			addChild(mMovie);
			Starling.juggler.add ( mMovie );
		}
	}
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です