AS3使用补间缩放x和y以提供movieclip弹跳效果

时间:2012-04-18 05:06:40

标签: actionscript-3 flash animation 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);

这是我遇到困难的地方。我以为我必须补间 所有三个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);

我没有收到任何错误,但没有生效。

1 个答案:

答案 0 :(得分:1)

您需要将侦听器分配给您在执行某些操作时执行操作的MovieClip。您可以为所有MovieClip使用单个事件处理程序:

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);
}

请注意,您不是将任何一个MovieClip指定为补间目标,而是使用event.target,它将引用您已翻转过的MovieClip。

在不相关的说明中,最好使用小写字母开始实例名称。这有助于将它们与类名区分开来,按照惯例,它们使用大写字母来开始每个单词:

var myVariable:MyClass;