インタビュー第4回バナー
インタビュー第3回バナー インタビュー第2回バナー インタビュー第1回バナー

Flash Lite 1.1 にはじめて触れる人のためのまとめ
言語仕様編

macromedia flash embeded

携帯ソーシャルブームで Flash Lite 1.1 に
はじめて触れる人も多いですよね。
そんな人向けに情報をまとめてみます。
ということで前回は Flash Lite 1.1 コンテンツで
データや画像などを動的に読み込む、
あるいは組み込む方法についてまとめてみました。

Flash Lite 1.1 にはじめて触れる人のためのまとめ データ受け渡し編

今回は言語仕様に絡む項目をまとめてみます。

Flash Lite 1.1 で「まさか」と思う
言語仕様的なポイントはこんな感じです。

・文字列用の演算子が数値用と別
・ユーザ関数が定義できない
・配列がない

順番にみていきます。

「文字列用の演算子が数値用と別」

Flash Lite 1.1 では文字列用の演算子が数値とは別に定義されています。
perl と同じような仕様なので、それほど驚きではないですが、
ActionScript 2.0 や 3.0 では数値演算子との区別はないので、
同じつもりでいると思わぬバグに悩まされたりします。
わかってても間違ったりするくらいですからw

用意されている文字列演算子はこちら。

・eq : 等しい
・ne : 等しくない
・gt : 左辺の方が大きい
・ge : 等しいか左辺の方が大きい
・lt : 左辺の方が小さい
・le : 等しいか左辺の方が小さい
・add : 左辺文字列の最後に右辺文字列を連結する

Adobe のマニュアルはこちら。

Flash Lite の演算子

使うこともないと思いますが、念のため説明しておくと
文字列が大きいとか小さいとかは次のようなルールになってます。

・文字列の先頭の文字から1文字ずつ比較
・比較する文字の文字コードが大きい方が大きい
    ("abc" は "abb" より大きい)
・短い文字列が長い文字列の先頭と一致するなら長い方が大きい
    ("abcd" は "abc" より大きい)

文字列を数値として参照すると全て 0 として扱われます。
なので、文字列が一致するするかどうかを間違えて == で
記述してしまったりすると、常に成立してしまって頭を悩ませたりしますw

「ユーザ関数が定義できない」

function キーワードがないです。
なので、ユーザ関数を定義することもできないです。
知らないと愕然としますが、一応代替手段として
call という関数が用意されています。
マニュアルはこちら。

Adobe Flash Lite : call()

call は引数で指定したフレームのスクリプトだけを実行して、
呼び出し元に戻ってきます。

例えば10フレーム目に下記のコードがあったとします。


trace("frame 10 " add message);


そして、1フレーム目に下記コード。


stop();
trace("frame 1 befor call()");
message = "hello!";
call(10);
trace("frame 1 after call()");


そうすると実行結果としては下記のような出力が得られます。


frame 1 befor call()
frame 10 hello!
frame 1 after call()


フレームのスクリプトを実行しているだけなので
当然関数内変数みたいな実装はできません。
関数というよりは BASIC の GOSUB RETURN という感じ。
関数引数や戻り値的な実装もないので、
上記サンプルの message のように
受け渡し用の変数を用意して実装することになります。
フレームに名前をつけることはできるので、
例えば上記の10フレーム目に "frame_func" とか名前つけて
call("frame_func") と呼ぶようにしておけば
フレーム数の調整があっても大丈夫にはしておけます。
call の引数に変数を渡すことはできるので、
関数テーブル的な実装も可能です。

「配列がない」

これはさすがに「まさか」と思いましたw
そして、代替手段があるってのも驚きです。
代替手段として eval という関数を使います。
eval は引数文字列をスクリプトとして解釈実行する関数です。

Adobe Flash Lite : eval()

これを使って文字列を変数名として評価することで
配列的な変数利用ができるようになります。
上記マニュアルにもサンプルがあるので、
ここでは2次元配列的な代入バージョンのサンプルを。


for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
eval("array_" add i add "_" add j) = 10 * i + j;
}
}

trace(array_0_0); // 0
trace(array_0_1); // 1
trace(array_1_0); // 10
trace(array_1_1); // 11


このアプローチなら連想配列的な実装も可能ですね。
posted by てらじろ at 2010年11月10日 23:28 | Comment(1) | TrackBack(0) | 技術関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
具民族の特色の深いブドウが赤くて、鮮やかで紫で、暗いナスの色を撒き散らすのは、基と油を押さえる青くて、よく使ったので、グッチコピーはこれらはどっと流れ出て感じの色とりどりで美しい組合せを温めることを構成して、その上また結んで更に強烈な効果を合成して、火をつけて放ち始めます。楽しい花のケンゾーの図案はよく大自然からとって、彼は猫、鳥、チョウ、カメなどの美しい小さい生物が好きで、特に花に心を引かれて、大自然の花、中国のかばんと日本の伝統の種類などを含みます。グッチコピーは千種類を使って染色しておよび組合せの方法、代々伝わってがプリントのろうけつ染めなどの方法をつくって花を表現しにくることを含んで、それによって彼の生地をいつも新鮮な楽しみの顔が現れさせます。グッチコピー
Posted by グッチコピー at 2014年02月22日 11:11
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。