Flash Lite 1.1と戦う
au携帯端末用2ちゃんねるブラウザ「Andy」を1から作り直している。公開し始めてから2年以上が経ち、気に入らないところが幾つか出てきたからだ。
依然として実機のない困難に加え、Flash Lite 1.1の言語制約がツラい。かなりツラい。
再利用性を高めるべく、ちまちまとUIオブジェクトから作っているのだけど、汎用的な作りにするにはコツがいる、というか難しい。Flash Lite 1.1では、関数すら自作できないんだから。
関数に似た機能を持たせるには、
call(フレーム名);
でなんとかなるし、別オブジェクト(ムービークリップ)の関数を呼び出すには、
tellTarget(ムービークリップへのパス){
call(フレーム名);
}
でそれらしく動いてくれはするんだけど、引数や戻り値はグローバルな変数で自前管理しないといけない。
配列も使えない言語仕様なので、以下のようにして疑似配列を作り出す。
// 代入 : Array[n] = "hoge";
set("Array" add n, "hoge");
// 参照 : trace( Array[n] );
trace( eval("Array" add n) );
ああ、面倒くさい。
でもここまでは基本。他にも色々ありますが、ここでは書きません。
最近の携帯端末はFlash Lite 2(ActionScript 2系)が載っていて、クラスが使えたりオブジェクト指向らしくなっているらしい。
ただ、普及具合はどうなんだろう。専門でないので詳しく知らないのだが、あまり話に聞かない感じだ。
AndyのクライアントはFlash Lite 1.1と戦いながら仕上げるとして、サーバプログラムの方は勉強を兼ねてApacheモジュールで書き直したいと思っている。
通りすがりの者です。
別MCのcall呼び出しですが、tellTarget使わずに、
call(”/all/keep/hit”);
とか
call(”../../keep/hit”);
等でも可能なようです。
参考に・・・。
失礼しました。
すいません。記述ミスです。
call(”/all/keep/:hit”);
call(”/MC名/:ラベル名”);
ですね。「:」忘れてました。