2012-04-18 35 views
0

我試圖給我的「按鈕」彈出效果使用補間類。我也試圖通過使用函數來處理我的所有按鈕的這種效果,使我的代碼更有效率。AS3使用補間x和y使用補間來給movieclip彈跳效果

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

這是我很難過的地方。我以爲我必須調整所有三個動畫片段的 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); 

我沒有得到任何錯誤,但沒有彈起效果。

+0

那麼,什麼都沒有發生?你可以請張貼更多的代碼嗎?你使用什麼'Tween'類? – www0z0k 2012-04-18 06:47:42

+0

你將動畫分配給一個事件的地方?任何類型的錯誤都不意味着你實際上沒有對來自按鈕的事件採取行動。 – shanethehat 2012-04-18 15:12:11

回答

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

注意,而不是指定任何一個影片剪輯在補間的目標,你正在使用event.target,這將把你已經滾過影片剪輯。

在不相干的筆記上,最好使用小寫字母來啓動實例名稱。這有助於將它們與按照慣例用大寫字母開頭的類名區分開來:

var myVariable:MyClass;