トップ > Flash Lite 1.0 / 1.1 | Flash Lite 2.0 / 3.0 > Flash Lite コンテンツのオブジェクトを上下キーで制御する

Flash Lite コンテンツのオブジェクトを上下キーで制御する

Flash Lite コンテンツの場合、上下キーを押したかどうかの判別は難しい。もしかすると一部機種で可能かもしれないが、汎用的な方法は無いということだ…。

しかし、条件付きではあるが、上下キーでオブジェクトを制御するような処理は可能。その条件とは、その場面でボタンが存在しないこと。

方法はいたってシンプル。空ボタンを3つ配置し適当に id などを割り振っておく。上下キーを押すことで空ボタンにフォーカスが順々にあたっていくことになるので、移動前のボタンと移動後のボタンの id を比較することで上キーを押したか下キーを押したかを判別できるという感じ。

Flash Lite 1.1 の場合

ちなみに、サンプルでは説明しやすいように、空ボタンではなくグレーの小さなボタンを配置。実際に空ボタンにしてフォーカス表示を非表示にすれば、上下キーでオブジェクトを制御しているように見える。

黒い円図形のインスタンス名を「obj」とし、それぞれのボタンの rollOver イベントを記述していく。そして「moveObj」というラベルを用意し、call() 関数でオブジェクトを制御するスクリプトを実行させるというもの。


//ボタン(上)のボタンアクション
on (rollOver) {
	btnId = 0;
	if (nowBtnId == 1) UpDown = true;
	if (nowBtnId == 2) UpDown = false;
	nowBtnId = btnId;
	call("moveObj");
}
//ボタン(中)のボタンアクション
on (rollOver) {
	btnId = 1;
	if (nowBtnId == 2) UpDown = true;
	if (nowBtnId == 0) UpDown = false;
	nowBtnId = btnId;
	call("moveObj");
}
//ボタン(下)のボタンアクション
on (rollOver) {
	btnId = 2;
	if (nowBtnId == 0) UpDown = true;
	if (nowBtnId == 1) UpDown = false;
	nowBtnId = btnId;
	call("moveObj");
}
//「moveObj」というラベルに下記のスクリプトを記述
divY = (UpDown) ? -10 : 10;
obj._y += divY;

Flash Lite 3.0 の場合

基本的には同じ仕組みだけども、同じことを Flash Lite 3.0 でやってみる。

Flash Lite 3.0 の場合、setFocus() が可能なので、一番上のボタンにフォーカスを当てておき、あとは onRollOver イベント処理を記述していく。


var nowBtnId:Number;
initBtn();
//ボタンイベント
function initBtn() {
	//ボタン(上)
	b0.onRollOver = function() {
		var btnId:Number = 0;
		if (nowBtnId == 1) moveObj(true);
		if (nowBtnId == 2) moveObj(false);
		nowBtnId = btnId;
	}
	//ボタン(中)
	b1.onRollOver = function() {
		var btnId:Number = 1;
		if (nowBtnId == 2) moveObj(true);
		if (nowBtnId == 0) moveObj(false);
		nowBtnId = btnId;
	}
	//ボタン(下)
	b2.onRollOver = function() {
		var btnId:Number = 2;
		if (nowBtnId == 0) moveObj(true);
		if (nowBtnId == 1) moveObj(false);
		nowBtnId = btnId;
	}
	//b0._focusrect = b1._focusrect = b2._focusrect = false;
	Selection.setFocus(b0);
}
//オブジェクト制御
function moveObj(ud:Boolean) {
	//目標位置設定
	var divY:Number = (ud) ? -10 : 10;
	obj._y += divY;
}

この記事をブックマークしておく

コメント:0

コメント投稿

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

この情報を記憶する

トップ > Flash Lite 1.0 / 1.1 | Flash Lite 2.0 / 3.0 > Flash Lite コンテンツのオブジェクトを上下キーで制御する

記事検索
カテゴリ
RSSフィード

このページの先頭へ戻る