ちょっと先の未来クイズ第2問

こんにちわ
今回はちょっと技術的な問題というより
気付いた所を質問させてください。

メインステージに配置したムービークリップが
あるのですが、プロパティでは整数値になっています。
スプリクトにてそのムービークリップを移動させ
IF文なんかで制御しようとしたらなかなか思ったように動きません。
(正確にいうと、あるルーチンを処理したら動いた)

あれ?何故だろと思い試行錯誤した結果、
トレース機能で見てみれば最初の移動している
ムービークリップが小数点を含んで動いていました。

なーんだ、じゃどこかのフレームで初期設定してやればいいのかと思い
(プロパティでは整数なのにブツブツ・・・)
初期設定で整数値に座標をセットして動かすと
またもやトレース内には少数値が・・・・

今は仕方なく、判断させるIF文にOR判断させ
整数と少数の二本立てで判断させ上手く動いていますが
これってどーゆー現象なのでしょうか。

お暇な時で結構なので教えてくださいませ。

A 回答 (1件)

おそらく、「プロパティ」「情報」パネルで座標を計測する点とインスタンスの中心点の位置が違っているために、座標が微妙に狂っている(ように見える)のだと思います。




「プロパティ」と「情報」パネルで表示される座標は、オブジェクトの左上または中央の座標です。
どちらを表示するかは「情報」パネルで変更できます。
「情報」パネルに、小さい四角が並んだ図形があるかと思います。
この図形は左上と中央だけが■または□になっていて、クリックした方が黒い四角に変わります。
黒い四角が、現在座標を表示している部分を表しています。
例えば左上が■になっている状態では、オブジェクトの左上の座標が表示されています。
なお、円などの四角形以外のオブジェクトの場合は、オブジェクトに外接する四角形の左上と中央の座標になります。


ActionScript での _x と _y プロパティには、インスタンスの中心点の座標が入っています。
インスタンスの中心点とは、ステージに配置した時にインスタンスに表示されている+印(○と重なっている場合もあります)のことです。元になっているシンボルと必ず同じ位置に設定され、インスタンスごとに好きな位置に変更することはできません。

シンボルの編集画面を開いてみてください。
絵を描くスペースに、+印が表示されているかと思います。
この位置がシンボルの中心点になります。+印は移動できないので、絵の方を移動して中心点を決めます。

例えば、新しくシンボルを作り、シンボルの編集画面の+印を中心に円を1つ描いたとしましょう。
このシンボルから作られたインスタンスは全て、中心点が中央にあるインスタンスになり、_x と _y プロパティにも中央の座標が格納されます。
ちなみに、_xscale や _yscale で変形したり _rotation で回転させる時も、インスタンスの中心点が基準になります。


シンボルの中心点は左上または中央に限らず、都合のいい場所に決めることができます。
しかし、「プロパティ」「情報」パネルに表示できる座標は左上か中央のどちらかだけです。
中心点が左上または中央以外にあるインスタンスですと、「プロパティ」「情報」パネルに表示される座標と ActionScript の _x ・ _y プロパティの値は、どうやっても一致しません。


例えば中心点が中央にあるインスタンスを動かす際に、オブジェクトの左上の座標を表示している状態の「プロパティ」パネルで表示された座標値を信じてスクリプトを組んだのでは、座標をとる位置が違っているのですから、当然、誤差が生じます。

シンボルの編集画面を開き、+印の位置を確認してみてください。
左上または中央にある場合は、「情報」パネルで左上か中央の座標を表示するように設定すれば、「プロパティ」「情報」パネルに表示される座標と ActionScript の _x ・ _y プロパティの値が一致するようになります。
左上か中央以外にある、もしくは微妙にズレているようなら、分かりやすい位置に+印が来るように絵を移動して調整するか、「プロパティ」「情報」パネルに表示される座標との誤差を考慮してスクリプトを組む必要があります。


もっとも、編集中に表示される座標は小数点第1位まで(第2位以下を入力すると四捨五入される)ですが、ActionScript では第2位まで有効で、ほんのわずかながら誤差はあるようです。
    • good
    • 0
この回答へのお礼

なるほど、そういう意味だったのですか。
ご丁寧に指導頂きありがとうございました。
この文章をコピーして自分用のヘルプファイルに
保存し今後の役に立てたいと思います。

ありがとうございました。

お礼日時:2005/08/14 10:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報