チェンジセット 3079

差分発生行の前後
無視リスト:
コミット日時:
2009/09/09 03:07:22 (6 ヶ月前)
コミッタ:
yossy
ログメッセージ:

BetweenAS3: Fix: RangeError? has occurred when using bezier tween with Elastic or Back easing. (fixed #106)

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/BetweenAS3/trunk/CHANGES

    r3078 r3079  
    55-------------------- 
    66 
     7 * [r3079] Fix: RangeError has occurred when using bezier tween with Elastic or Back easing. (#106) 
     8  
    79 * [r3077] [r3078] Fix: Sometimes ReferenceError has occurred in EnterFrameTicker. (#108) 
    810 
  • as3/BetweenAS3/trunk/CHANGES.ja

    r3078 r3079  
    55-------------------- 
    66 
     7 * [r3079] 修正: Elastic もしくは Back イージングでベジェトゥイーンをすると RangeError が発生する (#106) 
     8  
    79 * [r3077] [r3078] 修正: 特定の条件下で EnterFrameTicker 内で ReferenceError が発生する (#108) 
    810 
  • as3/BetweenAS3/trunk/src/fp10/org/libspark/betweenas3/core/updaters/BezierUpdater.as

    r3019 r3079  
    171171                                        } 
    172172                                        else { 
    173                                                 ip = (factor * l) >> 0; 
     173                                                if (factor < 0.0) { 
     174                                                        ip = 0; 
     175                                                } 
     176                                                else if (factor > 1.0) { 
     177                                                        ip = l - 1; 
     178                                                } 
     179                                                else { 
     180                                                        ip = (factor * l) >> 0; 
     181                                                } 
    174182                                                it = (factor - (ip * (1 / l))) * l; 
    175183                                                if (ip == 0) { 
  • as3/BetweenAS3/trunk/src/fp9/org/libspark/betweenas3/core/updaters/BezierUpdater.as

    r3021 r3079  
    171171                                        } 
    172172                                        else { 
    173                                                 ip = (factor * l) >> 0; 
     173                                                if (factor < 0.0) { 
     174                                                        ip = 0; 
     175                                                } 
     176                                                else if (factor > 1.0) { 
     177                                                        ip = l - 1; 
     178                                                } 
     179                                                else { 
     180                                                        ip = (factor * l) >> 0; 
     181                                                } 
    174182                                                it = (factor - (ip * (1 / l))) * l; 
    175183                                                if (ip == 0) { 
  • as3/BetweenAS3/trunk/tests/fp10/BezierTweenTest.as

    r3019 r3079  
    3434        import flash.events.MouseEvent; 
    3535        import org.libspark.betweenas3.BetweenAS3; 
    36         import org.libspark.betweenas3.easing.Cubic; 
     36        import org.libspark.betweenas3.easing.Elastic; 
    3737        import org.libspark.betweenas3.tweens.ITween; 
    3838         
     
    6666                        mc.y = 100; 
    6767                         
    68                         _t = BetweenAS3.bezier(mc, {x: 385, y: 207}, null, {x: [58.05, 145.9, 246.7, 345.55], y: [61.4, 80.65, 167.05, 209.3]}, 3.0, Cubic.easeOut); 
     68                        _t = BetweenAS3.bezier(mc, {x: 385, y: 207}, null, {x: [58.05, 145.9, 246.7, 345.55], y: [61.4, 80.65, 167.05, 209.3]}, 3.0, Elastic.easeOut); 
    6969                         
    7070                        _t.play(); 
  • as3/BetweenAS3/trunk/tests/fp9/BezierTweenTest.as

    r3020 r3079  
    3434        import flash.events.MouseEvent; 
    3535        import org.libspark.betweenas3.BetweenAS3; 
    36         import org.libspark.betweenas3.easing.Cubic; 
     36        import org.libspark.betweenas3.easing.Elastic; 
    3737        import org.libspark.betweenas3.tweens.ITween; 
    3838         
     
    6666                        mc.y = 100; 
    6767                         
    68                         _t = BetweenAS3.bezier(mc, {x: 385, y: 207}, null, {x: [58.05, 145.9, 246.7, 345.55], y: [61.4, 80.65, 167.05, 209.3]}, 3.0, Cubic.easeOut); 
     68                        _t = BetweenAS3.bezier(mc, {x: 385, y: 207}, null, {x: [58.05, 145.9, 246.7, 345.55], y: [61.4, 80.65, 167.05, 209.3]}, 3.0, Elastic.easeOut); 
    6969                         
    7070                        _t.play();