0

オブジェクトを別のオブジェクトに対して相対的に追加できるコードを見たことがありますが、それを機能させることができません。長方形を描画してから、最初の長方形に比べて別の小さな長方形を追加しようとしています

public var rectangle:Sprite = new Sprite();
public var other:Sprite = new Sprite();

rectangle.graphics.beginFill(0xFF0000);
rectangle.graphics.drawRect(250, 10, 100, 100);
rectangle.graphics.endFill();

other.graphics.beginFill(0x00FF00);
other.graphics.drawRect(0, 0, 50, 50);
other.graphics.endFill();
rectangle.addChild(other);
this.addChild(rectangle);

両方の長方形は、ステージに対して相対的にレンダリングされるだけです。ここで何が間違っていますか?

4

2 に答える 2

1

スプライトを子としてスプライトに追加できます。しかし、問題は、2 つのスプライトの座標を変更していないことです。ステージと親スプライトの座標系が同じであるため、見た目に違いはありません。

親スプライトの座標を変更してみると、子スプライトが一緒に移動することがわかります。

大きな四角形の中に小さな四角形を入れるには、次のようにします。

public var rectangle:Sprite = new Sprite();
public var other:Sprite = new Sprite();

rectangle.graphics.beginFill(0xFF0000);
rectangle.graphics.drawRect(0, 0, 100, 100);
rectangle.graphics.endFill();

other.graphics.beginFill(0x00FF00);
other.graphics.drawRect(0, 0, 50, 50);
other.graphics.endFill();

rectangle.x = 250;
rectangle.y = 10;
other.x = 25;
other.y = 25;

rectangle.addChild(other);
this.addChild(rectangle);
于 2012-02-16T03:20:17.150 に答える