さて、今回も引き続きマウスイベントのお話し
では早速
●dragOver、dragOut
===================================
授業の時にも、これを設定しないとバグが発生することを確認しましたが
前回のマウスイベントのリストには、これに該当するものがありません。
ではどうするかというと、
イベントが発生したときに実行するカスタムメソッドでは
引数を受け取らなければなりませんでした、この引数はイベントオブジェクトと
呼ばれるもので、いろいろなプロパティを持っているというのは
enterFrameの回で説明しました。enterFrameの時は使えそうなものが
ないと書いたのですが、マウスイベントでは使えるプロパティがあります。
それがbuttonDownプロパティです。その名の通り、イベントが発生したときに
ボタンが押されているか否かを教えてくれます。
function clickFunc (eo) {
var test = eo.buttonDown
trace(test);
}
これを利用すれば、dragOut、dragOverとrollOver、rollOutで動作を分けることができます。
授業ではdragOut、dragOverを設定しましたが、これはボタンが押されているときは
rollOver、rollOutのイベントが発生しないためでした。しかし、AS3では
ボタンが押されていようが、いまいがROLL_OVER、ROLL_OUTのイベントが発生するので、
この点に関しては楽になりました。
●releaseOutside
===================================
releaseOutsideもAS3ではなくなってしまいました。
そして、これを実現するのは、ちょっとややこしいです。ですが、
色々な方が、すでに対応策を公開していますので、そちらを参照してください。
まず考え方はこちらのブログを参照
fladdict.net
そしてサンプルを公開している方のブログ
52sec.org
●MOUSE_MOVE
===================================
AS2のmouseMoveに相当するものですが、設定されたムービークリップの領域にあるときしか
なので、これもreleaseOutsideの時と同様にstageにaddEventListenerする手法を用いないと
AS2のようなことは出来なくなってしまいました…。
●ダブルクリック
===================================
WEBコンテンツの作成においては、ほとんど使う機会はないと思います。
でもWEBアプリの作成なんかになると使うのでしょうね、きっと。
ダブルクリックのイベントは通常発生しないようになっています。
ダブルクリックのイベントを利用する場合はAS日記(5)で紹介した
doubleClickEnabledをtrueにする必要があります。
doubleClickEnabledをfalseにしたときにダブルクリックをすると
クリックイベントが2回発生します。
doubleClickEnabledをtrueにしたときにダブルクリックをすると
ダブルクリックイベントが1回発生し、あとクリックイベントも1回発生します。
こんな感じで、かなりマウスイベントの扱いが変わってしまいました…。
さてマウスイベントについて調べていたら、
Stageオブジェクトにだけ利用できるMOUSE_LEAVEというイベントを見つけたので
2回で終わる予定でしたが、次回もマウスイベントにしたいと思います。