- ベストアンサー
ムービークリップの初期座標に関する問題
- メインステージに配置したムービークリップの座標が整数値ではなく小数値で動いてしまう問題が発生しています。
- プロパティではムービークリップの座標は整数値になっているのに、スクリプトで移動させると小数値で動いてしまいます。
- 現在は条件分岐で整数値と小数値の両方を判断させていますが、なぜこの現象が起きるのか教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
おそらく、「プロパティ」「情報」パネルで座標を計測する点とインスタンスの中心点の位置が違っているために、座標が微妙に狂っている(ように見える)のだと思います。 「プロパティ」と「情報」パネルで表示される座標は、オブジェクトの左上または中央の座標です。 どちらを表示するかは「情報」パネルで変更できます。 「情報」パネルに、小さい四角が並んだ図形があるかと思います。 この図形は左上と中央だけが■または□になっていて、クリックした方が黒い四角に変わります。 黒い四角が、現在座標を表示している部分を表しています。 例えば左上が■になっている状態では、オブジェクトの左上の座標が表示されています。 なお、円などの四角形以外のオブジェクトの場合は、オブジェクトに外接する四角形の左上と中央の座標になります。 ActionScript での _x と _y プロパティには、インスタンスの中心点の座標が入っています。 インスタンスの中心点とは、ステージに配置した時にインスタンスに表示されている+印(○と重なっている場合もあります)のことです。元になっているシンボルと必ず同じ位置に設定され、インスタンスごとに好きな位置に変更することはできません。 シンボルの編集画面を開いてみてください。 絵を描くスペースに、+印が表示されているかと思います。 この位置がシンボルの中心点になります。+印は移動できないので、絵の方を移動して中心点を決めます。 例えば、新しくシンボルを作り、シンボルの編集画面の+印を中心に円を1つ描いたとしましょう。 このシンボルから作られたインスタンスは全て、中心点が中央にあるインスタンスになり、_x と _y プロパティにも中央の座標が格納されます。 ちなみに、_xscale や _yscale で変形したり _rotation で回転させる時も、インスタンスの中心点が基準になります。 シンボルの中心点は左上または中央に限らず、都合のいい場所に決めることができます。 しかし、「プロパティ」「情報」パネルに表示できる座標は左上か中央のどちらかだけです。 中心点が左上または中央以外にあるインスタンスですと、「プロパティ」「情報」パネルに表示される座標と ActionScript の _x ・ _y プロパティの値は、どうやっても一致しません。 例えば中心点が中央にあるインスタンスを動かす際に、オブジェクトの左上の座標を表示している状態の「プロパティ」パネルで表示された座標値を信じてスクリプトを組んだのでは、座標をとる位置が違っているのですから、当然、誤差が生じます。 シンボルの編集画面を開き、+印の位置を確認してみてください。 左上または中央にある場合は、「情報」パネルで左上か中央の座標を表示するように設定すれば、「プロパティ」「情報」パネルに表示される座標と ActionScript の _x ・ _y プロパティの値が一致するようになります。 左上か中央以外にある、もしくは微妙にズレているようなら、分かりやすい位置に+印が来るように絵を移動して調整するか、「プロパティ」「情報」パネルに表示される座標との誤差を考慮してスクリプトを組む必要があります。 もっとも、編集中に表示される座標は小数点第1位まで(第2位以下を入力すると四捨五入される)ですが、ActionScript では第2位まで有効で、ほんのわずかながら誤差はあるようです。
お礼
なるほど、そういう意味だったのですか。 ご丁寧に指導頂きありがとうございました。 この文章をコピーして自分用のヘルプファイルに 保存し今後の役に立てたいと思います。 ありがとうございました。