- ActionScript 誰かが物凄い勢いで解答するスレ28
730 :Now_loading...774KB[sage]:2011/06/12(日) 00:00:09.32 ID:UooPAAGW -
var Speed:Number=10; var copy_x:Number=x; var copy_Speed:Number=Speed; for(var i:uint=0; i<3; i++){ Speed+=0.3; x+=Speed; trace(x ,Speed); copy_Speed+=0.3; copy_x+=copy_Speed; trace(copy_x ,copy_Speed); trace("-----------------------"); } 上のコードは、物理運動を再現しようとしていて気になった部分があったので簡略化したものです。 毎フレームの動作だった部分は回数を限定したループに置き換えています。 内容は、まず1行目のSpeedは移動速度を表したもので、ループ内で0.3ずつ加速しxに加算されます。 3〜4行目のcopy_xとcopy_Speedはそれぞれxと上のSpeedの内容をコピーしたもので、ループ内でも同様の処理を行います。 これをメインタイムラインの1フレーム目で実行すると、 本来ならトレースされる結果はコピー元のx、Speedとコピー後のcopy_x、copy_Speedで同じになるはずなのですが、 次のレスで示すようにxとcopy_xに極僅かに差異が生じてしまいます。
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
731 :Now_loading...774KB[sage]:2011/06/12(日) 00:02:15.02 ID:UooPAAGW - 10.3 10.3
10.3 10.3 ----------------------- 20.9 10.600000000000001 20.900000000000002 10.600000000000001 ----------------------- 31.8 10.900000000000002 31.800000000000004 10.900000000000002 ----------------------- これは何が原因で起こることなのでしょうか? コンピューターの小数計算は擬似的なものであまり正確ではないと聞いたことがあるのですが こうも簡単にズレが起こると困ります・・。 AS3.0、FlashPlayer10、FlashProfessionalCS5の環境で起こりました。
|
- Flashの超基本的な質問はここでしろ! part42
181 :Now_loading...774KB[sage]:2011/06/12(日) 00:07:40.35 ID:UooPAAGW - trace関数の含まれる負荷の高いフラッシュをプレビューしていると、
再生中のフラッシュのウィンドウとFlashProfessional本体が全く応答しなくなるのですが対処法はありませんか? 無限ループに陥った時のように再生が止まるわけではないのですが、 マウスイベントやキーボードイベントなどの操作やウインドウの閉じるボタンの押下に全く反応せず再生を続けます。 この状態になると最終的に強制終了させるしかなくとても困っています。 スペックには余裕があるはずなのでどうしてこのようなことになるのかわかりません。
|
- ActionScript 誰かが物凄い勢いで解答するスレ28
734 :Now_loading...774KB[sage]:2011/06/12(日) 00:34:44.76 ID:UooPAAGW - >>732
ありがとうございます。ではこのような計算結果のズレに根本的な対策法はないということでしょうか。 たとえ0.000000000000004でも==を使って比較したときには違う数として判定されるので 精密な計算の必要な場合にはどうしたらいいのでしょうか。
|