- 2008-11-09 (日)
- Flash Lite 3.0
Capabilities クラス
Flash Lite 3.0 のヘルプを何気なく眺めていたら、Capabilities クラスというものを発見。
モバイルのシステムや Flash Player の機能を確認できるというシロモノ。
ちょっと気になったのは、screenOrientation で画面の向きを取得できるプロパティ。通常、90度、180度、270度という状況を知ることができる。向きがいろいろ変わるとそれに応じた仕掛けを組み込むことができるようになる。といっても、機種によってこのプロパティがどのように変化するまでかは分からないので今のところは何とも言えないけど…(汗
その他にも画面サイズを取得できる、screenResolutionX や screenResolutionY などもあるので、画面サイズに応じたコンテンツレイアウトも可能かなとか思う。
何かと使う機会もあるかもと思い、capabilities のプロパティ一覧を確認できるサンプルを作成してみた。
ヘルプの順番と同じになっているので、詳しい解説はヘルプと連動して確認すると良いかもしれない。
ただ何故か hasXMLSocket のみ「このプロパティはありません」というエラーが出てしまう…。ヘルプにはきちんと書かれているのだけど対応していないのだろうか…。とりあえずこの部分の処理はコメントアウトして無視しておいている。
あとは、1画面で収まる情報量ではないので上下キーで画面を移動するようにした。その際のモーション処理に Tweener ライブラリを利用してみることに。
Flash Lite 3.0 + Tweener ライブラリ
もちろん Tweener ライブラリは、ActionScript 2.0 版を使用。
http://code.google.com/p/tweener/ から「tweener_1_31_74_as2_fl7.zip」をDLして利用してみた。Flash Lite 2.0 にも対応とあるしパブリッシュ時にも容量が最も小さいので良いかなーと。使い方は AS の時とまったく同じ。
サンプルの構成としては、infoArea というインスタンスの中に capabilities のプロパティ一覧をずらずらと並べている。これを空ボタンを使って上下キーで移動させるという処理を行っている。
実機 SH905i で見てみたところ意外と動きはスムーズ。新しい機種のスペックと player のバージョンのおかげかも。
ソースはこんな感じ。
//1.31.74 for Flash 7+ and Flash Lite 2.0+
import caurina.transitions.Tweener;
//変数
var infoArea:MovieClip = infoArea;
var defY:Number = 40;
var divY:Number = 200;
var nowY:Number = defY;
var maxY:Number = - (Math.floor(infoArea._height / divY) - 1) * divY + defY;
var nowB:Number;
//初期化
initBtn();
//上下キー処理
function initBtn() {
//b0.onRelease = b1.onRelease = b2.onRelease = function() { }
b0.onRollOver = function() {
var id:Number = 0;
if (nowB == 1) movePanel(true);
if (nowB == 2) movePanel(false);
nowB = id;
}
b1.onRollOver = function() {
var id:Number = 1;
if (nowB == 2) movePanel(true);
if (nowB == 0) movePanel(false);
nowB = id;
}
b2.onRollOver = function() {
var id:Number = 2;
if (nowB == 0) movePanel(true);
if (nowB == 1) movePanel(false);
nowB = id;
}
b0._focusrect = b1._focusrect = b2._focusrect = false;
Selection.setFocus(b0);
}
//パネル制御 ud=true:下降/ud=false:上昇
function movePanel(ud:Boolean) {
//目標位置設定
nowY = (ud) ? nowY+divY : nowY-divY;
nowY = (nowY > defY) ? defY : nowY;
nowY = (nowY < maxY) ? maxY : nowY;
//モーション
Tweener.addTween(infoArea, {
time:0.5,
_y:nowY,
transition:"easeOutSine"
})
}
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://god.xsrv.jp/__mt/mt-tb.cgi/1380
- トラックバックを受ける記事
- FL3 | capabilities プロパティ一覧と Tweener クラスの実装 from 1ka2ka.com
