メイン コーダーズルーム【スクリプト系】 MovieClipの座標の比較について | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yonhon | Åê¹ÆNo.25166 投稿日時: 2006-4-26 2:12 |
新米 居住地: 投稿: 17
使用環境:
WinXP,Flash8Pro,FCS1.5(Linux) |
MovieClipの座標の比較について MovieClipの_xや_yについてですが、
小数点のついたマイナス数値の比較が うまくいきません。
私の頭の中では、 test_mc._x と x は両方とも-4.1のハズなのですが 実行するとなぜかトレース部分が走ってしまいます。 何か根本的に勘違いをしているのだと思うのですが、 ハマってしまってうまく理解できません。 ご指摘いただけるとありがたいです |
森 なおき | Åê¹ÆNo.25167 投稿日時: 2006-4-26 2:39 |
モデレータ 居住地: 福岡(心は大阪) 投稿: 527
使用環境:
:MacOSX10.6.8 :FlashCS5.5 |
Re: MovieClipの座標の比較について なおきです。
まず?でなく「4.1」でも同じ結果になるはずです。 それはさておき「-4.05」などにするとyonhonさんが望まれる結果になるはずです。 これは内部の精度が1ピクセルの1/20になっていることに起因していると思われます。 だとしたら-4.1でも問題がなさそうな気がするのですが謎ですね。 ちなみに「-4.15」などとしても望まれる結果が得られます。
|
yonhon | Åê¹ÆNo.25168 投稿日時: 2006-4-26 3:11 |
新米 居住地: 投稿: 17
使用環境:
WinXP,Flash8Pro,FCS1.5(Linux) |
Re: MovieClipの座標の比較について 引用:
まず?でなく「4.1」でも同じ結果になるはずです。 あ、そうみたいですね。気づきませんでした^^; 引用: これは内部の精度が1ピクセルの1/20になっていることに起因していると思われます。 parseFloat()をかますとなぜか望む結果になりました。
ちなみにmc._xはトレースすると4.1と出ます。 回避策としてはウマくいったのですが、 parseFloat()するとウマくいくのが釈然としません。 mc._xには4.100000.....0000001のような 数値が入っているのかなぁ? 情報おまちしております^^; |
野中文雄 | Åê¹ÆNo.25169 投稿日時: 2006-4-26 3:42 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MovieClipの座標の比較について 私の環境(Flash 8.0/Mac OS X.4.6)では、プラスマイナスいずれの値でも、問題は再現しません。
引用: yonhonさんは書きました: 以下をtrace()してみてください。
引用: ちなみにmc._xはトレースすると4.1と出ます。 「丸め誤差」の発生している可能性が考えられます。 引用: mc._xには4.100000.....0000001のような コンピュータの演算では、「丸め誤差」は不可避ですので、浮動小数値同士の等価比較は避けることが安全でしょう。
|
yonhon | Åê¹ÆNo.25173 投稿日時: 2006-4-26 4:59 |
新米 居住地: 投稿: 17
使用環境:
WinXP,Flash8Pro,FCS1.5(Linux) |
Re: MovieClipの座標の比較について ありがとございまーす
なんとなくわかってきました。 MovieClipの_xに値を指定。 ↓ MovieClipの_xのsetterメソッドでは 指定した値そのものではなく 内部の精度による計算結果を格納。 ↓ ただしそれは、指定した値と、 まるめ誤差程度しか違わない値。 ↓ なので Math.pow(10, -15) 程度の誤差なら イコールと判断してOK。 これでいいのかなぁ( ´ω`) ? |
野中文雄 | Åê¹ÆNo.25180 投稿日時: 2006-4-26 12:58 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: MovieClipの座標の比較について MovieClip._xプロパティがgetter/setterプロパティである点は、そのとおりです。
引用: yonhonさんは書きました: 「XY座標の最小単位」は、森さんのいわれるように1/20ピクセルです。 引用: 森 なおきさんは書きました: 引用: ただしそれは、指定した値と、 Flashの浮動小数値の処理一般については、そのとおりです。 けれども、MovieClip._x/MovieClip._yは上述のとおり1/20刻みの値ですし、同じ座標でもMovieClip._xmouse/MovieClip._ymouseは整数値で扱われます。また、MovieClip._alphaプロパティは、内部的に1/256(256階調)を単位としています。 したがって、扱うプロパティごとに、確認は必要です。 引用: なので |
yonhon | Åê¹ÆNo.25188 投稿日時: 2006-4-26 16:03 |
新米 居住地: 投稿: 17
使用環境:
WinXP,Flash8Pro,FCS1.5(Linux) |
Re: MovieClipの座標の比較について おかげさまで完全に理解できました。
詳しい説明ありがとうございます |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |