0

MOUSE_OUTが呼び出されるべきではないのに呼び出されるという問題があります。私がしていることは非常に単純です。ステージ上でマウスを動かすと2つの画像が表示され、マウスがステージを離れると2つの画像が非表示になります。

問題は、マウスがステージ上のムービークリップの境界に当たると、MOUSE_OUT関数が呼び出され、2つの画像が非表示になることです。これは、マウスを動かすたびに

私のコード(関連する部分のみが表示されています):

public class Slider extends MovieClip {
    var img1:Img1 = new Img1;
    var img2:Img2 = new Img2;
    var img1_hover:Img1_hover = new Img1_hover;
    var img2_hover:Img2_hover = new Img2_hover;

    public function Slider() {
        img1.alpha = 0;
        img2.alpha = 0;

        stage.addEventListener(MouseEvent.MOUSE_MOVE, showArrows);
    }
    function showArrows(e:MouseEvent) {
         img1.alpha = 1;
         img2.alpha = 1;

         stage.addEventListener(MouseEvent.MOUSE_OUT, hideArrows);
    }
    function hideArrows(e:MouseEvent) {
         img1.alpha = 0;
         img2.alpha = 0;
    }
 }

Flashはエラーをスローしません。別の.asファイル(1つだけ)を使用していて、.flaのアクションパネル内にコードがありません。stage.addEventListenerがある場合は、これも試しました。、root。ステージの代わりには何もありません。

4

1 に答える 1

2

代わりにMOUSE_LEAVEイベントを使用するhttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#event:mouseLeave

または、hideArrows関数で、イベントのターゲットを確認できます。

function hideArrows(e:MouseEvent) {
    If(e.target == stage){
         img1.alpha = 0;
         img2.alpha = 0;
    }
}
于 2012-04-10T00:09:15.210 に答える