[Stage3D] StarlingでGAFに挑戦! 〜Generic Animation Format〜

Flash Player 11 から採用された Stage3D を学習するよ。 :bouzu:
Starling Framework を試しちゃうんだからね。 :girl:

starling_GAF

GAF (Generic Animation Format) を使ってみるよ。
GAFMovieClipクラスGAFAssetクラスを使ってみちゃうよ。 :boy:

:caution: 要 Flash Player 11.8 以上

This movie requires Flash Player 11.8.0

Main.as
package {

  import flash.display.Sprite;
  import flash.display.StageScaleMode;
  import flash.display.StageAlign;

  import starling.core.Starling;

  [SWF(backgroundColor="#FFFFFF", width="600", height="200", frameRate="60")]

  public class Main extends Sprite {
    // プロパティ
    private var starling:Starling;

    // コンストラクタ
    public function Main() {
      stage.scaleMode = StageScaleMode.NO_SCALE;
      stage.align = StageAlign.TOP_LEFT;
      init();
    }

    // メソッド
    private function init():void {
      starling = new Starling(MainView, stage, null, null);
      starling.enableErrorChecking = true;
      starling.start();
    }

  }

}



import starling.core.Starling;
import starling.display.Sprite;
import starling.events.Event;

import flash.events.Event;
import com.catalystapps.gaf.core.ZipToGAFAssetConverter;
import com.catalystapps.gaf.data.GAFAsset;
import com.catalystapps.gaf.display.GAFMovieClip;


internal class MainView extends Sprite {
  [Embed(source="assets/piyo.zip", mimeType="application/octet-stream")]
  private var PiyoZIP:Class;
  // プロパティ
  private var converter:ZipToGAFAssetConverter;
  private var piyo:GAFMovieClip;

  // コンストラクタ
  public function MainView() {
    addEventListener(Event.ADDED_TO_STAGE, init);
    addEventListener(Event.REMOVED_FROM_STAGE, remove);
  }

  // メソッド
  private function init(evt:Event):void {
    removeEventListener(Event.ADDED_TO_STAGE, init);
    converter = new ZipToGAFAssetConverter();
    converter.addEventListener(flash.events.Event.COMPLETE, converted, false, 0, true);
    converter.convert(new PiyoZip());

  }
  private function remove(evt:Event):void {
    removeEventListener(Event.REMOVED_FROM_STAGE, remove);
  }
  override public function dispose():void {
    removeEventListener(Event.ADDED_TO_STAGE, init);
    removeEventListener(Event.REMOVED_FROM_STAGE, remove);
    super.dispose();
  }
  private function converted(evt:flash.events.Event):void {
    converter.removeEventListener(flash.events.Event.COMPLETE, converted);
    var asset:GAFAsset = converter.gafAsset;
    piyo = new GAFMovieClip(asset);

    piyo.pivotX = 40;
    piyo.pivotY = 168;
    piyo.x = 300;
    piyo.y = 175;
    addChild(piyo);

    piyo.play();
  }

}

:check: 「Generic Animation Format. Convert from Flash to GAF.
SWFファイルをウェブまたはアプリにドラッグアンドドロップして、GAFファイルとテクスチャが梱包されたZIPファイル (piyo.zip) を生成する。

:check: 「CatalystApps/StarlingGAFPlayer · GitHub
ここからASソースファイルを取得する。また、FZip.swc も必要。さらに、starling.extensions.pixelmask.PixelMaskDisplayObject クラスも必要。

Starling用のGAFパッケージのリファレンスは、こちら。
:check: 「All Packeages - API Documentation

なお、piyo.zip 内の テクスチャは、こんな感じになっている。 😮

starling_GAF_piyo

通常のTextureを使う場合は、 :banana: [AS3.0] Starlingを試すのだ! (25) 参照。


[修正] (14/06/25 Wed 15:25)
Starling 1.5 にバージョンアップ。
[修正] (14/06/25 Wed 17:16)
Starling 1.5.1 にバージョンアップ。ひよこちゃんの位置も修正。
[修正] (14/12/14 Sun 20:48)
Starling 1.6 にバージョンアップ。