- 2007年12月10日 16:00
- ActionScript 3.0
ActionScript3.0を使っていると
大量にEventを扱うわけですが
けっこう違いがわからないEventがあったりします。
最近一番違いについて迷ったのが MouseEvent 系。
MouseEventクラスには,MOUSE_OVERとROLL_OVER
( MOUSE_OUT, ROLL_OUT もまあ一緒。)
の二つがあり、何が違うかわからん!!まあどっちでも良いか・・・
と思いがちです。
でも、テキトウに使うのも気持ちが悪いですし
やっぱ分かれてるからには意味があるわけです。今日はそれの話。
大量にEventを扱うわけですが
けっこう違いがわからないEventがあったりします。
最近一番違いについて迷ったのが MouseEvent 系。
MouseEventクラスには,MOUSE_OVERとROLL_OVER
( MOUSE_OUT, ROLL_OUT もまあ一緒。)
の二つがあり、何が違うかわからん!!まあどっちでも良いか・・・
と思いがちです。
でも、テキトウに使うのも気持ちが悪いですし
やっぱ分かれてるからには意味があるわけです。今日はそれの話。
じゃあ何が違うんじゃ、という事ですが。
簡単に言うと以下の感じ。
■MOUSE_XXXX系
MOUSE_OVER, MOUSE_OUTはイベントを設定した DisplayObject 内にaddされた
どの DisplayObject であっても, マウスがOVER, OUTすればイベントが発生します。
つまり○の中に○を置いて◎みたいな MovieClip を作った場合
外側の○にカーソルを合わせた場合、外側の○で MOUSE_OVER イベントが発生。
その後、内側の○にカーソルを合わせると、外側の○で MOUSE_OUT イベントが
内側の○で MOUSE_OVER イベントが発生します。
要するに、なんでもいいからカーソルが触れている DisplayObject が変わったら
イベントが発生する仕組みです。
■ROLL_XXXX系
ROLL_OVER, ROLL_OUT は、設定した DisplayObject 全体の判定エリアから
マウスがOVER, OUTした時のみ発生します。
つまり○の中に○を置いて◎みたいな MovieClip を作ったとしても
その後、◎にカーソルを合わせると、 ROLL_OUT イベントが
◎にカーソルからカーソルを外すと、 ROLL_OVER イベントが発生します。
要するに、設定したDisplayObject全体から
MOUSE_OVER, MOUSE_OUT しないと発生しません。
ここが大きな違いです。
言葉で説明してもわかりにくいと思うのでサンプルを後日あげようと思います。
今日はこの辺で。
- Newer: 続 AS3.0 MOUSE_OVERとROLL_OVERの違い
- Older: MoiveClipをボタンにする時の小技