トップページ > FLASH > 2011年06月12日 > UooPAAGW

書き込み順位&時間帯一覧

2 位/74 ID中時間01234567891011121314151617181920212223Total
書き込み数4000000000000000000000004



使用した名前一覧書き込んだスレッド一覧
Now_loading...774KB
ActionScript 誰かが物凄い勢いで解答するスレ28
Flashの超基本的な質問はここでしろ! part42

書き込みレス一覧

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でも==を使って比較したときには違う数として判定されるので
精密な計算の必要な場合にはどうしたらいいのでしょうか。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。