イベントのLIFO
2009 年 2 月 27 日
コメントはありません
ECMAScript,具体的にはActionScript 3.0のEventにはBubblesという面白い特徴があるので,
これを使えば,イベントをスタックに溜めてLIFOなんかもできるなと思った.
# Arrayには標準でpush() / pop()があるしね.
Capture Phaseでスタックにイベントを溜めて,Bubbling Phaseで処理・破棄.
なんでこんなことを考えたかというと…
例えば,ボタンアクションに重い処理があって,連打された場合の挙動が不安な場合,同時発生するイベントの数を制限したかったりする.
10個以上のイベントは処理するだけ無駄!,とか.
FlashのGCはちょっと頼りないので,不必要な処理はなるべく避けたいし.
これを上記の例で解決するなら… スタックは10個までと制限しておいて,あふれる場合には最古のイベントを削除.
連打終了後,改めてスタックを見にいくとか.
ECMAScriptであれば同様のことができると思うので,
手頃な言語で検証してみたい.
もしくはflasmしてみるのも良いかもしれない.
デメリットは作成途中に適用させるにはソース書換え量が多くなりそうってことかな.
