1

コンテナにサムネイルをロードしました。各サムには MOUSE_OVER および _OUT リスナーがあります。私はそれぞれの親指 mouseChildren を false に設定しています。

サムの後ろに作成されるポップアップは、MOUSE_OVER イベントをトリガーしています。ポップアップで mouseEnabled を false に設定しました。

なぜこれが起こっているのかわかりません。手がかりをいただければ幸いです。

for (var i:uint = 0; i < numOfThumbs; i++) {

    // add thumb
    thumb = new Thumb
    thumb.buttonMode = true;
    thumb.mouseChildren = false;
    container.addChild(thumb);

    // add listener
    thumb.addEventListener(MouseEvent.MOUSE_OVER, rollOverHandler, false, 0, true);
    thumb.addEventListener(MouseEvent.MOUSE_OUT, rollOutHandler, false, 0, true);

    // add popup
    popup = new Popup;
    popup.mouseEnabled = false;
    thumb.addChildAt(popup, 0);
}

private function rollOverHandler(e:MouseEvent):void {
    // Hey popup.... stop triggering this. I just want the thumb to trigger this. jerk.
}
4

2 に答える 2

2

期待どおりに動作しています。子オブジェクトは、親の境界に影響を与えます (これは、mouseOver/Out を受け取るものです)。

あなたの最善の策は、次のいずれかです。

A: ポップアップを別の displayObject コンテナに入れます (親指の子としてではありません)。

B: ポップアップが表示されている間、Thumb の mouseInput を一時的に無効にします。

C: ポップアップで、mouseEnabled = true (mouseChildren=false のまま) を設定し、イベント ターゲット (e.target) がポップアップであるかどうかを rollOverHandler でチェックし、true の場合は返します。

if(e.target == popup) return;
于 2012-07-26T22:57:05.803 に答える
-2

mouseChildrenメインの MovieClip では false に設定します。

于 2012-07-26T22:50:39.103 に答える