2010-05-31 20 views
0

我一直在尋找一些時間.. 是否可以在AS3中將緩動功能作爲變量傳遞?在AS3中將緩動功能作爲變量傳遞

例如。

TweenLite.to(mcDelimiter, resizeTween, { x:(stageWidthHalf-(initStageWidthHalf-mcDelimiteri_X)), ease:Elastic.easeOut }); 

TweenLite.to(mcBody, resizeTween, { x:(stageWidthHalf-(initStageWidthHalf-mcBody_X)), ease:Elastic.easeOut }); 

...現在如果我在某些時候要改變「Elastic.easeOut」到別的東西我會在代碼的多個部分,以改變它.. 能不能做到,所以我只是通過它作爲一個變量,然後如果我想改變它,只在一個地方做?

編輯:...也, 可以爲例如。莫名其妙地完成了嗎? ..意思,我可以通過currentFrame標籤名稱作爲變量?

預先感謝anwsers,

安德烈

回答

0

您可以繞過於ActionScript中的函數的引用,就像你會與任何其他對象。例如(僞代碼):

var equation:Function; 
equation = Elastic.easeInOutSine; 

TweenLite.to(mcDelimiter, resizeTween, { x:(stageWidthHalf-(initStageWidthHalf-mcDelimiteri_X)), ease: equation }); 

所有您需要做的就是創建一個變量來充當緩動函數的引用。你可以打電話到TweenLite另一個功能,並通過寬鬆變量像這樣:

public function doTween(equation:Function):void 
{ 
    TweenLite.to(mcDelimiter, resizeTween, { x:(stageWidthHalf-(initStageWidthHalf-mcDelimiteri_X)), ease: equation }); 
} 
0

謝謝!! 順便說一句:如果別人有同樣的問題,使用「currentLabel」而不是currentFrame獲取當前幀名稱......呃! :)