0

tween クラスを使用して、「ボタン」に効果的なバウンスを与えようとしています。また、すべてのボタンに対してこの効果を処理する関数を使用して、コードをより効率的にしようとしています。

var MusicClip:MovieClip  = new music_mc();
var MoviesClip:MovieClip  = new movie_mc();
var GameClip:MovieClip  = new game_mc();

MusicClip.y = 63;
MusicClip.x = 577;
MoviesClip.y = 87;
MoviesClip.x = 401;
GameClip.y = 75;
GameClip.x = 151;

addChild(MusicClip);
addChild(MoviesClip);
addChild(GameClip);

ここが私が苦労しているところです。3 つの MovieClip すべてで scaleX と scaleY の両方をトゥイーンする必要があると思っていましたが、ボタンはステージ上に表示されるだけで、アニメーションは表示されません。また、このコードを関数に入れることができれば、記述する必要はありません。すべてのボタン (および将来のボタン) に最適です。

var scaleTween:Tween=new Tween(MusicClip,"scaleX",Elastic.easeOut,0,1,1,true);
var scale2Tween:Tween=new Tween(MusicClip,"scaleY",Elastic.easeOut,0,1,1,true);

エラーは発生していませんが、実際にはバウンスはありません。

4

1 に答える 1

1

何かをしたときにアクションを実行するリスナーを MovieClip に割り当てる必要があります。すべての MovieClip に対して 1 つのイベント ハンドラーを使用できます。

MusicClip.addEventListener(MouseEvent.MOUSE_OVER,bounceButton);
MusicClip.addEventListener(MouseEvent.MOUSE_OVER,bounceButton);
MoviesClip.addEventListener(MouseEvent.MOUSE_OVER,bounceButton);

function bounceButton(event:MouseEvent):void
{
    var scaleTween:Tween=new Tween(event.target,"scaleX",Elastic.easeOut,0,1,1,true);
    var scale2Tween:Tween=new Tween(event.target,"scaleY",Elastic.easeOut,0,1,1,true);
}

1 つのムービークリップをトゥイーン ターゲットとして指定するのではなく、event.targetロールオーバーしたムービークリップを参照する を使用していることに注意してください。

これとは関係ありませんが、インスタンス名は小文字で始めることをお勧めします。これは、慣例により各単語の先頭に大文字を使用するクラス名と区別するのに役立ちます。

var myVariable:MyClass;
于 2012-04-18T15:15:25.797 に答える