[Study]最低限のaddEventListenerのための関数

addEventListenerの管理が大変なときがあるので、簡単にするための関数。

たとえばデータを次々に読み込んでオブジェクトを配置しなおすような場合、
その管理が大変になることがある。
また、3D空間内で空気遠近法を使ったりで、手前に薄い霧がかかり、
その奥のオブジェクトをクリックしたい場合、判別が難しい。

そんな時、getObjectsUnderPointを活用して、マウスの下のオブジェクトのリストを取得し、
その、(ルールを決めた)一番手前のオブジェクトを返すようにすれば、解決する。

それをまとめたのがMousePointクラス。

MousePoint.objectFromStage(stage)で、
マウス下の名前をつけた一番手前のobjectを返す。

nameを明示的につけたものだけを対象する場合はinNamed = trueにする。

さらに条件をつけたいときには、isNegativaFnに関数を割り当てる。
はじく条件なので、注意。

おそらく、実務では、ルール付けをしたうえでobjectを返すほうが使えると思う。
霧の向こうのオブジェクトがほしい場合は、霧自体は無視してほしいから。

090529修正
inNamed = falseにデフォルト値を修正。
targetを一括で設定できるように修正。

 
このデモでは
addEventListenerはひとつだけで、クリックしたオブジェクトを取得し、右へ5px移動する。
ただし、名前をつけていないものと8文字以上の名前をつけたものには反応しない。

Comments are closed.