【AS3】FlashDevelop【フリー】 (601レス)
1-

97
(1): 2009/07/22(水)21:56 ID:uQMeUn4h(1) AAS
>>95 DisplayObjectの中にDisplayObjectをaddChildした時、
子の方の座標は親からの相対=ローカル座標になるんじゃなかったっけ?

ただし、「この領域内」 っていう、他の言語で言うクリッピング領域がデフォルトで存在しない=自分のサイズを持っていないので、
例えば 400x300 (のつもりの) Sprite内で、800, 600 の位置に子を配置して、しかも表示されてしまい、
さらに、800,600 の位置にあるその子のサイズを 100x100 とした時、

気持ちの上では 「親のサイズは900,700であって欲しい」のに、値を取得すると100x100と返ってきてしまう!
ここが、なんか最初戸惑ってしまう所なんだよな。 自分のサイズが中身に依存している/依存した値しか無い。

そんな訳で俺の場合、明示的にどうしてもサイズが必要ならこうしてる

 var oya:Sprite = new Sprite();

 var ko:Sprite = new Sprite();
 ko.width = 1; ko.height = 1;
 ko.graphics.beginFill(0xffffff, 0.0); // サイズ1ピクセルのアルハァ0の矩形を0,0に
 ko.graphics.drawRect(0, 0, 1, 1);
 ko.graphics.endFill();
 oya.addChild(ko);

 var bm:Bitmap = new Bitmap(new BitmapData(100, 100));
 bm.x = 800;
 bm.y = 600;
 oya.addChild(bm);

これで、親のサイズ披露とちゃんと 900,700 が返る。 ※注意・ただしわざわざこんな事するのは必要な時のみ
1-
あと 504 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.014s