0

私はFlashCS5とAS3の初心者ですが、問題があります。ステージ上に、指定されたインスタンス名でMovieClipsに変換された3つの長方形があります。3つすべてに色効果のプロパティがあります:alpha=50。as3レイヤーに次のコードを入力しました。

addEventListener(MouseEvent.ROLL_OVER, RollOverBtn);
addEventListener(MouseEvent.ROLL_OUT, RollOutBtn);

function RollOverBtn(event:MouseEvent):void
{
    event.target.alpha = 100;
}

function RollOutBtn(event:MouseEvent):void
{
    event.target.alpha = 50;
}

問題は、マウスが1つの四角形をロールオーバーすると、アルファが100に変わることです。しかし、マウスがロールアウトすると、何も起こりません。

助言がありますか?

コードを次のように変更しました:

btn1.addEventListener(MouseEvent.ROLL_OVER, MouseOverBtn);
btn1.addEventListener(MouseEvent.ROLL_OUT, MouseOutBtn);

btn2.addEventListener(MouseEvent.ROLL_OVER, MouseOverBtn);
btn2.addEventListener(MouseEvent.ROLL_OUT, MouseOutBtn);

btn3.addEventListener(MouseEvent.ROLL_OVER, MouseOverBtn);
btn3.addEventListener(MouseEvent.ROLL_OUT, MouseOutBtn);

function MouseOverBtn(event:MouseEvent):void
{
    trace("roll over"+event.target);
    event.target.alpha = 1;
}

function MouseOutBtn(event:MouseEvent):void
{
    trace("roll out"+event.target);
    if(event.target.alpha == 100){
        event.target.alpha = 0.5;
    }
}

私が受け取るトレースメッセージは次のとおりです。

roll over[object MovieClip]
roll out[object MovieClip]

これは、私が理解できるように、roll_outがトリガーされても、alphaプロパティを変更しないことを意味します。

4

1 に答える 1

1
  1. アルファは、0 ~ 100 ではなく、0 ~ 1 の範囲の値を持つことができます。
  2. リスナーをどこに接続しましたか? ボタンに追加する必要があります。
于 2012-06-24T10:06:24.753 に答える