« タイポ日記 その7 | main | テキストインプットとフィルターの組み合わせにバグ »
2005年12月15日
for文100万回ループとかの実装
AIとか、探索とか分析とかの処理のときに、for文100万回ループとか10000回再帰呼び出しみたいのをやりたいことがあるんだけど、Flashではどうも現実的じゃなくて諦めてたのよ。
んだけどね、
おいちゃんね、今日おもいついちゃったのよ。
for文でループ中に経過時間を計って、一定時でfor文強制終了。終了時のローカル変数を保存して、次のフレームでループ文を復元、再開するようなクラスをつくればいいんじゃね?
なんか、Javaにはスレッドっていって、そういう機能があるらしいね。これ実現できたら、どんな処理やってもflashが固まるっていうのはかなり軽減できそう。
投稿者 Taka : 2005年12月15日 01:32
book
bookmark
trackbacks
this entry's trackback URL:
http://www.fladdict.net/cgi-bin/mt3/mt-tb.cgi/414
comment
Flashのfor文はループ完了後に結果を吐き出すモノだと思っていたのですが、ループ中に時間計測とか出来るんですね、知りませんでした。
by HI : 2005年12月15日 04:12
考え方としてはいわゆる「継続」というやつかな?
http://www.shiro.dreamhost.com/scheme/docs/cont-j.html
タイマーで止めるのはやってないんですが、指定ループ回数でいったん処理をもどしてsetTimeoutで間欠的に実行、という処理で初期描画をとりあえず回すのはjavascriptでもけっこう有用でした。
by dotimpact : 2005年12月15日 09:14
>HIさん
ループ中の時間は、ループ開始前とループのお尻でそれぞれDateオブジェクトを作って時間をはかれば可能ですよー。
>dotimpactさん
おぉ、なんかナイスっぽい資料ありがとうございます。時間があるときに研究してみまっす!!
by Taka : 2005年12月17日 02:15
こんばんは。
ちょっと気になったので、for文ループを実装してみました。
> for文でループ中に経過時間を計って、一定時でfor文強制終了。
> 終了時のローカル変数を保存して、次のフレームでループ文を復元、
> 再開するようなクラスをつくればいいんじゃね?
この通りに作ってみました。
どこかで公開できるならしてみます。
by arkw : 2005年12月20日 19:14
>arkwさん
レス遅れてしまってすいません。
というか、スゴイッス!! 公開大期待してます!!
by Taka : 2005年12月26日 02:25