2014-09-06 17 views
1

您好我有一個奇怪的問題,因爲我試圖移動MovieClip對象與如下因素代碼:不能使用方法的參數,以成功地執行一些代碼TweenLite的

TweenLite.from(Dus, 1, { y:- Dus.height ,ease:Cubic.easeOut,alpha:0, onComplete:moveToTopLeftCorner2(Dus)}); 

    public function moveToTopLeftCorner2(mc:MovieClip):void{ 
     trace(mc); 
     TweenLite.to(mc, .8, {x: 30, y: 40, onComplete:setObjectSmaller2}); 
     } 

不幸的是我上面的代碼不會讓MovieClip對象移動到左上角。但我用「trace(mc)」來檢查它;查看變量mc中是否存在MovieClip對象。所以我然後檢查了「trace(mc);」的輸出它是:

[object MovieClip] 

但是,這段代碼實際上讓MovieClip對象移動到左上角。

TweenLite.from(Dus, 1, { y:- Dus.height ,ease:Cubic.easeOut,alpha:0, onComplete:moveToTopLeftCorner}); 

public function moveToTopLeftCorner():void{ 

     TweenLite.to(Dus, .8, {x: 30, y: 40, onComplete:setObjectSmaller2}); 

     } 

我的問題是:爲什麼不moveToTopLeftCorner2(MC:影片剪輯)方法的MovieClip對象移動到左上角? moveToTopLeftCorner()方法確實將MovieClip對象移動到左上角。我還記錄了我自己向您展示MovieClip對象的輸出和顯示。這裏是鏈接到視頻:

鏈接:https://www.youtube.com/watch?v=8jgFNxd99MI

回答

3

當你說onComplete:moveToTopLeftCorner2(Dus)您正在設置onComplete值的moveToTopLeftCorner2(Dus)其結果是void

取而代之,您只需將其設置爲實際功能的參考:onComplete:moveToTopLeftCorner2

您可以使用特殊的onCompleteParams選項爲其提供參數並將其發送給參數數組:onCompleteParams: [Dus]


因此,所有的一切:

TweenLite.from(Dus, 1, 
       { y:- Dus.height ,ease:Cubic.easeOut,alpha:0, 
       onComplete:moveToTopLeftCorner2, onCompleteParams: [Dus]}); 

public function moveToTopLeftCorner2(mc:MovieClip):void { 
    trace(mc); 
    TweenLite.to(mc, .8, {x: 30, y: 40, onComplete:setObjectSmaller2}); 
} 

然而,這是有點惱人,因爲你必須在你的代碼指定Dus兩次。相反,您可以使用特殊的"{self}"參數。

TweenLite.from(Dus, 1, 
     { y:- Dus.height, ease:Cubic.easeOut,alpha:0, 
     onComplete:moveToTopLeftCorner2, onCompleteParams: ["{self}"]}); 

public function moveToTopLeftCorner2(tween:TweenLite):void { 
    var mc = tween.target; 
    TweenLite.to(mc, .8, {x: 30, y: 40, onComplete:setObjectSmaller2}); 
} 

現在你onComplete功能回來你創建補間的實例,你可以用它來訪問已補間的對象。

+0

嗨,首先感謝您的回答,但不幸的是我仍然遇到錯誤。對於您的第一段代碼,我收到以下錯誤: ArgumentError:錯誤#1063:Model :: mediumRectangle/moveToTopLeftCorner2()上的參數計數不匹配。預計1,得到0. 對於第二段代碼,我也得到了同樣的錯誤。我也檢查過這個鏈接:http://code.tutsplus.com/tutorials/quick-tip-how-to-debug-an-as3-error-1063-active-9541。但解決方案與你給我的一樣。有沒有其他解決方案? – superkytoz 2014-09-09 22:46:31

+1

@superkytoz哎呀!在我的示例中,我一直使用'onCompleteArgs'而不是'onCompleteParams'。修正並嘗試吧! – JKillian 2014-09-10 00:09:35

+0

甜蜜的第一塊代碼作品!但對於第二個我仍然有一個錯誤嘿嘿。如果您想知道以下錯誤: TypeError:錯誤#1034:類型強制失敗:無法將「{self}」轉換爲com.greensock.TweenLite。 如果您知道解決方案,請告訴我。因爲我仍然很好奇嘿嘿。 – superkytoz 2014-09-10 08:23:08