Progressionが使えるようになりたいメモ10_クラスベースでフレーム使用


前回のF-siteにいったという記事にも書いたことですが、僕は、フレームを使用したアニメーションを使って、

バリバリアニメーションをクラスを利用しながらやりたいなと思っています。


で、シーンの遷移時のアニメーションにフレームの使用方法が分かったので、メモしておこうと思います。


基本は、クラスベースProgressionで制作します。


シーンは以下の構成

IndexScene(SceneObject)

-AboutScene(SceneObject)

--AboutPage(キャスト)

-GalleryScene(SceneObject)

--GalleryPage(キャスト)


IndexSceneからAboutSceneに遷移すると、AboutPageが表示されるとして、

AboutSceneから移動した場合、AboutPageは消えるとします。

AboutPageが表示されるときと、消えるときのアニメーションをフレームアニメーションで行います。


AboutPage.asのソースのポイント

  • InOutMovieクラスをサブクラスにとる
package  
{
	import jp.progression.casts.*;
	import jp.progression.commands.*;
	import jp.progression.events.*;
	import jp.progression.loader.*;
	import jp.progression.*;
	import jp.progression.scenes.*;
	import jp.progression.casts.animation.InOutMovie;

	public class IntroMovie extends InOutMovie
	{
		
		/*======================================================================*//**
		 * コンストラクタ
		 */
		public function AboutPage() 
		{
		
		}
	}
}

クラス:AboutPage

基本クラス:flash.display.MovieClip

上記のリンケージ設定をしたシンボルに「in」「stop」「out」というラベルの設定。

f:id:bao_bao:20081116173158j:image

inラベルは、AboutSceneへの遷移してAboutPageがAddChildされたときに始まり、stopラベルで停止します。

他のシーンへの遷移が始まり、removeChildされた時にstopラベルで停止していたフレームが始まり、outラベルでシーンが遷移します。


以下のような書き方が出来ると思います。

AboutScene.asのソースの一部

protected override function _onInit():void 
{
	addCommand(
		//AddChildコマンドが実行された瞬間にinラベルからstopラベルにフレームアニメーションが行われます。
		new AddChild(progression.container, new AboutPage()),
		//stopラベルに来た瞬間にWaitコマンドが実行されます。
		new Wait(1000)
	);
}

これで、クラスベースでフレームアニメーションが使えそうです。