0

我正在尝试使用补间类使我的“按钮”生效。我还试图通过使用一个函数来处理我所有按钮的这种效果,从而使我的代码更有效。

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

我没有收到任何错误,但没有弹跳效果。

4

1 回答 1

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;
于 2012-04-18T15:15:25.797 回答