ActionScript3 - addChild () относительно другого объекта - PullRequest
0 голосов
/ 16 февраля 2012

Я видел код, в котором объект может быть добавлен относительно другого, но я не могу заставить его работать.Я просто пытаюсь нарисовать прямоугольник и затем добавить еще один меньший прямоугольник относительно первого

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);

Оба прямоугольника просто оказываются отрисованными относительно сценыЧто я тут не так делаю?

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Вы можете добавить спрайты в качестве дочерних к спрайту.Но ваша проблема в том, что вы никогда не меняли координаты своих двух спрайтов.Таким образом, нет никакой визуальной разницы, которую вы можете видеть, потому что сцена и родительский спрайт имеют одинаковую систему координат.

Попробуйте изменить координаты родительского спрайта, и вы увидите, что дочерний спрайт перемещается вместе с ним.

Теперь, чтобы получить маленький прямоугольник внутри большого, вы можете сделать так:

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);
0 голосов
/ 09 июня 2013

Проблема в том, что при указании координат для drawRect (или любой другой фигуры), независимо от того, где он появляется на экране, фигура всегда ориентирована на 0, 0 .Это сбивает с толку, и я не уверен, почему это так, но решение всегда состоит в том, чтобы нарисовать ваши фигуры в 0, 0, а затем переместить их, указав x и y.Тогда x и y вашего ребенка будут относительно родительского.

...