« タイポ日記 その7 | main | テキストインプットとフィルターの組み合わせにバグ »

2005年12月15日

for文100万回ループとかの実装

AIとか、探索とか分析とかの処理のときに、for文100万回ループとか10000回再帰呼び出しみたいのをやりたいことがあるんだけど、Flashではどうも現実的じゃなくて諦めてたのよ。

んだけどね、
おいちゃんね、今日おもいついちゃったのよ。

for文でループ中に経過時間を計って、一定時でfor文強制終了。終了時のローカル変数を保存して、次のフレームでループ文を復元、再開するようなクラスをつくればいいんじゃね?

なんか、Javaにはスレッドっていって、そういう機能があるらしいね。これ実現できたら、どんな処理やってもflashが固まるっていうのはかなり軽減できそう。

投稿者 Taka : 2005年12月15日 01:32

book

dotfla.gif

bookmark

はてなブックマークに追加

del.icio.usに追加

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

コメントしてください




保存しますか?