起こるべきことを言葉で伝えようとすると、「イベントが発生した場合、そうでない場合、ここをクリックしてタイムアウトが発生した場合」という言葉をたくさん聞くことができます。 ここでは、if-elseのスタイルでイベントをプログラムする試みについて説明します。
// event listener- beginGroup(); // btn_shoot_mc.addEventListener("click",function ...); // listener , handler // "none" - // "self" - listener // "group" - listener- wait(btn_shoot_mc,"click",function(e:Object){ // return "group"; }); timeout(2.0,function(e:Object){ //, return "group"; }); timer(0.5,function(e:Object){ // return "none"; }); endGroup();
ActionScript言語の機能では、おなじみのif-else構文を使用できませんが、beginGroupとendGroup内のwait、timeout、timerの呼び出しは、本質的にこの役割を果たします。
別の例:コンテキストメニュー
import com.github.iovdin.eventtree.*; // items - MovieClip- wait(items,"click",function(e:Object){ var item:Sprite = e.currentTarget; // var h:Function = arguments.callee; addChild(menu); menu.x = item.x; menu.y = item.y; // nextFrame(function(e:Object){ // beginGroup, endGroup // wait(menu,"click",function(e:Object){ // - menu.parent.removeChild(menu); // wait(items,"click",h); return "group"; }); // stage MovieClip wait([stage,item],"click",function(e:Object){ menu.parent.removeChild(menu); // wait(items,"click",h); return "group"; }); // item , wait(items,"click",function(e:Object){ if(e.currentTarget == item) return "none"; h(e); return "group"; }); }); return "self"; });