下面的代碼,使用TweenMax的onUpdate方法 this.detaibaseInfo2 = new Sprite(); with (detaibaseInfo2) {
x = 30;
y = 700; with (graphics) { beginFill(0x826b45, 1);
drawRect(0, 0, 240, 20); endFill();
}
}
addChild(detaibaseInfo2); TweenMax.to(detaibaseInfo2, 0.2, {y:260, onUpdate:detaibaseInfo2Update,ease:Strong.easeOut});但是測試了一下: private function detaibaseInfo2Update():void {
trace("detaibaseInfo2.y="+detaibaseInfo2.y); if (detaibaseInfo2.y < 270) {
other code ...
}
}輸出的結果是:[trace] detaibaseInfo2.y=399.7[trace] detaibaseInfo2.y=399.7[trace] detaibaseInfo2.y=399.7[trace] detaibaseInfo2.y=399.7[trace] detaibaseInfo2.y=399.7[trace] detaibaseInfo2.y=291.45[trace] detaibaseInfo2.y=263.25[trace] detaibaseInfo2.y=260.05[trace] detaibaseInfo2.y=260
2 回答

瀟瀟雨雨
TA貢獻1833條經(jīng)驗 獲得超4個贊
對于你輸出的結果,居然有幾個值是一樣的,
我嘗試你的代碼,輸出如下
detaibaseInfo2.y=678.4detaibaseInfo2.y=428.15detaibaseInfo2.y=354.35detaibaseInfo2.y=285.3detaibaseInfo2.y=271.8detaibaseInfo2.y=261.55detaibaseInfo2.y=260.3detaibaseInfo2.y=260detaibaseInfo2.y=260
可能的原因:
你swf輸出設置的幀頻太小
嘗試換掉
Strong
,用比如Expo
來獲取跳躍沒那么大的緩動如果真的是處理其他腳本影響了動畫的執(zhí)行,嘗試替換
TweenMax
為Tweenlite
來提高效率

慕萊塢森
TA貢獻1810條經(jīng)驗 獲得超4個贊
Greensock的文檔中有提到對ease強度的分級,從0到4,strong是4,是加速度最強的easing,在你只tween了0.2秒的動畫中,這么強的加速度當然會造成數(shù)值的劇烈變動,你想,整個動畫才0.2秒時間結束,總共才trace了9次,對象在0.2秒內(nèi)以最高的加速度移動440像素,那當然一下子就得跳過一半距離了……親你急速堆太高了……
如果你說為什么第一條不是700,因為是先update再trace的,trace出來的永遠是本次update完成時的y值
- 2 回答
- 0 關注
- 128 瀏覽
添加回答
舉報
0/150
提交
取消