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モジュールで書き直したいと思っている。

関連しそうな投稿

2 Comments

ruriwo2007/12/17 13:39

通りすがりの者です。

別MCのcall呼び出しですが、tellTarget使わずに、
call(”/all/keep/hit”);
とか
call(”../../keep/hit”);
等でも可能なようです。
参考に・・・。
失礼しました。

ruriwo2007/12/17 16:42

すいません。記述ミスです。
call(”/all/keep/:hit”);

call(”/MC名/:ラベル名”);
ですね。「:」忘れてました。

コメント

コメント