ますあなたのマウスのデフォルトパラメータを設定することができます新しいイベントを作成してディスパッチして同じコードを実行する必要はありません( )。
myBtn.addEventListener(MouseEvent.MOUSE_OVER, btnOverHandler);
function btnOverHandler(e:MouseEvent = null):void{
trace('do stuff on roll over!');
}
//then you can do this wherever you need
btnOverHandler();
両方の状況で(MouseEvent、またはnot)動作するはずです。
そしてマウスオーバーの場合、getObjectsUnderPointは便利です。これは、この特定の例に必要なもの(さらに長いもの)以上のものですが、それが存在することを知っておくと良いことです。
function isMouseOver(target:DisplayObject,container:DisplayObjectContainer):Boolean{
var isOver:Boolean = false;
var pt:Point = new Point(mouseX, mouseY);
var objects:Array = container.getObjectsUnderPoint(pt);
for(var i:int = 0 ; i < objects.length; i++){
if(objects[i] == target) {
isOver = true;
break;
}
}
return isOver;
}
希望します。
私はそれが私を助ける方法を見ません。それがmouseMoveの場合、インタラクティブなオブジェクトを残したことはありませんが、私はそれをどうしますか?私はまだx + yとすべてのボタンの制約を比較する必要があります。 –
なぜですか?topLevelContainerはMOUSE_MOVEイベントを受け取ると、移動したUIボタンである子にそのイベントを伝えます。これにより、それぞれのボタンでMOUSE_OVERイベントが発生し、ロールオーバー効果が発生します。 – CookieOfFortune
ええと...申し訳ありませんが、クッキー、私はそれを試したが、ダイスはありませんでした。正しく実装しているかどうかわからない。マウスがすでに希望のボタンの上にあることを考えれば、これがMOUSE_OVERをどのように引き起こすかはまだ分かりません。 また、スライドボタンにリスナーを追加して、topLevel MOUSE_MOVEをリッスンすることを意味しますか? –