谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

FlashLiteのランタイムって怪しくない?

最近、FlashOOPな感じでFlashLite2.0/3.0で動くアプリを作ってるんだけど、
どーにも、FlashLiteの実行系が怪しい。


PC上のFlash PlayerやDevice Centralで動かす分には全く問題ないんだけど
携帯電話の実機(試したのは、自分が使ってるW54T922SH)だと、
↓のような問題が起きる。


1. インスタンスの生成に失敗する。

var count:Number = 0;

for (var i:Number = 0; i < 1000; i ++)
{
	var obj:Hoge = new Hoge();
	if (obj)
	{
		count ++;
	}
}

これで、countが1000にならないことがある。
今の所、Hogeが別クラスを継承している時だけ起こるみたいだけど。


2. メソッドの呼び出しに失敗する。

var count:Number = 0;

for (var i:Number = 0; i < 1000; i ++)
{
	var flag:Boolean = hoge();
	if (flag == false)
	{
		count ++;
	}
}

// 別ファンクション
function hoge():Boolean
{
	return true;
}

これで、countが0にならないことがある。


3. 値の設定に失敗する。

var mc:TextField = _root.createTextField( // ... 省略
mc._x = 100;

これで、移動しないことがある。


みたいな感じで、頻度的には、1%前後ぐらい発生する感じ。


仕方ないから、newに失敗していたら、もう一度newするとか、
値が設定できてなかったら、もう一回値を設定するとか、
そんなコードをゴリゴリ書きながら対応する感じ。


FlashOOPとか、FlashLiteとか言ってるけど、みんな困ってないのかな?
もし、これは日常茶飯なFAQだったりとか、
いい回避策とかあったら教えてください m(_ _)m