/* ゲームのAIを作りたいのですが、制限時間があるとします。 選択時間内に_thinkが終わらなかった場合 とりあえずその時点でのselectionが参照されるようになっていますが、 もう考え続けないでいいのに考え続けてしまいます。 40行目の位置から_think関数を止めたいのですが、可能でしょうか? */ package { import flash.events.MouseEvent; import flash.text.TextField; import flash.display.Sprite; public class FlashTest extends Sprite { public function FlashTest() { // write as3 code here.. var tf:TextField = new TextField(); addChild(tf); var moja:Ai = new Ai(); moja.addEventListener("complete",function():void{ tf.text = String(moja.selection); }); moja.think(); } } } import flash.events.EventDispatcher; import flash.events.Event; import flash.events.TimerEvent; import flash.utils.Timer; class Ai extends EventDispatcher{ private var _timer:Timer; private var _selection:int; public function get selection():int{return _selection;} function Ai(){} public function think():void{ _timer = new Timer(5000,1); _timer.addEventListener(TimerEvent.TIMER,function():void{ dispatchEvent(new Event("complete")); // ここで_think関数を止めたい }); _timer.start(); _think(); } private function _think():void{ /* ここで考える、時間がかかるかもしれない */ _selection = 3; _timer.stop(); dispatchEvent(new Event("complete")); } } 関数を中断したい