Starling framework for Stage3DStarlingフレームワークの基本とマウスイベント01 Starlingフレームワークの基本2次元の描画やアニメーションを、これまでのActionScript 3.0と同じスタイルで扱えるのがStarlingフレームワーク。つまり、Stage3DとActionScript 3.0標準のスクリプティングとを橋渡しする通訳の役目を果たす。 ADC OnAir「Stage3Dを学ぼう!Flashで2Dコンテンツ」(5月23日水曜日録画)
Starlingフレームワークは、EventDispatcherクラスを皮切りに、それを継承して表示リストに連なるクラスがstarlingパッケージにActionScript 3.0定義済みクラスと同じ名前で定義されている。そのため、Starlingフレームワークのスクリプトをフレームアクションに書こうとすると、ActionScript 3.0定義済みクラスとの重複が起こってしまう。 F-site「Starlingフレームワークのスクリプトをフレームアクションに書いてみる」 02 Starlingフレームワークにおけるインスタンスのクリックとドラッグ&ドロップマウスのインタラクティブな操作は、DisplayObject.touchイベントで扱われる。そして、どのような操作をマウスでしたのかは、イベントリスナーが引数に受取るTouchEventオブジェクトからTouchEvent.getTouch()メソッドによりTouchオブジェクトを得て、そのTouch.phaseプロパティで調べる。 ドラッグしたときのTouch.phaseプロパティの値は定数TouchPhase.MOVED。マウスボタンを押したままの操作を意味するので、このプロパティだけでドラッグ&ドロップは扱える(図001)。 「Starlingフレームワークでインスタンスをドラッグ&ドロップする」 図001■Starlingフレームワークでインスタンスをドラッグする ところがクリックの場合、定数TouchPhase.ENDEDのマウス操作はボタンを放した位置がインスタンス上かどうかを問わない。そのため、StarlingフレームワークのDisplayObject.hitTest()メソッドで、マウスポインタの座標がインスタンスに重なっているかどうか調べなければならない。 「Starlingフレームワークでインスタンスをクリックする」 03 ビットマップのアルファも確かめてクリックを判定するStarlingフレームワークのDisplayObject.hitTest()メソッドは、インスタンスとの重なりを矩形領域で判定してしまう(図002)。しかし、ActionScript 3.0定義済みのBitmapData.hitTest()メソッドを使えば、座標がビットマップのイメージ上にあるかどうか調べられる。 図002■ポインタがイメージ上になくても矩形領域内ならクリックできてしまう 「Starlingフレームワークでビットマップ上のクリックを検知する」 作成者: 野中文雄 Copyright © 2001-2012 Fumio Nonaka. All rights reserved. |
|||