Labo

Progression4でページ遷移

まだパブリックベータ版のProgression4ですが、仕事で使ってみることにしました。

ver3ではページ遷移の時に例えば下記のような書き方をしていました。

□キャストボタンクラス内のスクリプト

//シーンに移動した瞬間にイベント発生(シーン移動を監視)
addEventListener(CastEvent.STATUS_CHANGE, onEvent);

function onEvent(e:CastEvent):void {
	//自分自身、もしくは孫シーンに移動してきた場合
	if (isCurrent || isChild) {
		//ボタン選択状態のエフェクト
		Tweener.addTween( this, { alpha:1, time:1 } );

		//ボタンカーソルを消す(指カーソルを消す)
		buttonMode = false;

	} else { //別のシーンに移動した場合
		// ボタンを薄くする
		Tweener.addTween( this, { alpha:0.5, time:1 } );

		//ボタンカーソル復活(指カーソルを出す)
		buttonMode = true;
	}
}
・
・
・
//ロールオーバーメソッド
protected override function _onCastRollOver():void {
	// 自分自身のシーンにいない場合にだけエフェクトをかける
	if (!isCurrent) {
		Tweener.addTween( this, { alpha:1, time:1 } );
	}
}

Progression4では、「CastEvent」というイベントや「isCurrent」というプロパティがなくなったので、上記と同じような挙動にするには、例えば以下のような記述します。


//シーンに移動した瞬間にイベント発生(シーン移動を監視)
addEventListener(CastMouseEvent.CAST_STATE_CHANGE,onEvent);

function onEvent(e:CastMouseEvent):void {

	//state(ステータス?)プロパティで、シーンIDなどの情報が取得できるが、どうやら番号によって意味づけがされているらしい
	switch (state) {
		//0:?
		case 0 :{ }
		
		//1:?
		case 1 :{ }
			
		//2:カレント(自分の)シーンに入ってきた場合
		case 2 :
		{
			//ボタン選択状態のエフェクト
			Tweener.addTween(this, {alpha:1,time:1});

			//ボタンカーソルを消す(指カーソルを消す)
			buttonMode=false;
			break;
		}
			
		//3:別の階層に離れた時?
		case 3 :{}
			
		//4:カレント(自分の)シーンから離脱した時
		case 4 :
		{
			// ボタンを薄くする
			Tweener.addTween(this, { alpha:0.5, time:1});

			//ボタンカーソル復活(指カーソルを出す)
			buttonMode=true;
			break;
		}
		//?
		default : {}
	}
}
・
・
・
//ロールオーバーメソッド
override protected function atCastRollOver():void {

//manager.currentで現在のシーンの情報を取得(object型)
//このボタンのシーンIDと一致しない時は、ロールオーバー効果を使用
	if (manager.current.sceneId.toString() != sceneId.toString()) {
		Tweener.addTween( this, { alpha:1, time:1 } );
	}
}


参考:
□ RC8/MEMO :
- http://rc8memo.tumblr.com/
□ RC8/MEMOさんのwonderfl :
- http://wonderfl.net/code/76981e3592f64e3cf9a1c384cad8734759972002
□ BOONDOCK RADIO :
- http://boondockradio.net/blog/?p=431

関連情報

□ APIリファレンス :
- http://asdoc.progression.jp/4.0_mxml/jp/progression/events/CastMouseEvent.html#CAST_STATE_CHANGE
- http://asdoc.progression.jp/4.0_mxml/jp/progression/casts/CastButton.html#event:castStateChange

10.01.22.PM04:34

Voice

1

先日はお世話になりました!
progressionネタ参考にさせてもらいます~。

ヤッホーイ

2010.01.26 | post by nogud url

2

新年会おもろかったです〜
progression4かなりよいので是非!

2010.01.26 | post by plamo

Track Back

http://plamo-tokyo.com/site/mt-tb.cgi/75