Как нарисовать круг внутри Border Container, используя графический объект?

Мое основное требование - нарисовать круг внутри BorderContainer с макетом, установленным в BasicLayout

Я запускаю этот метод в CREATION_COMPLETE событие объекта BorderContainer.

   this.graphics.beginFill(0xff0000);
   this.graphics.lineStyle(1, 0x00ff00);
   this.graphics.drawCircle(0, 0, 50);
   this.graphics.endFill();

Извините за грубость, но почему я ничего не вижу? Я знаю, что, должно быть, мне здесь не хватает чего-то ОЧЕНЬ базового Могу ли я просто рисовать, как это, или я должен рисовать в каком-то другом событии?

PS: я знаю, что могу создать объект Ellipse и легко добавить его в контейнер границы, но я хотел бы знать, как я могу сделать это, используя графический объект.

3 ответа

Решение

В былые времена вы переопределяли updateDisplayList и рисовали там. Я предполагаю, что вещи обновляются в какой-то момент после завершения создания. Поскольку вы рисуете, а не добавляете объект на сцену, ваш круг на самом деле не является частью какого-либо жизненного цикла и будет очищаться всякий раз, когда список отображения будет загрязнен / перерисован. Надеюсь, это поможет.

Я вижу две возможные проблемы.

  1. Вы забыли добавить объект BorderContainer на сцену
  2. это не ссылка на ваш объект BorderContainer. Попробуйте отследитьэто в вашем списке событий или измените на target или currentTarget
var _shape:Shape=new Shape();
addchild(_shape);

_shape.graphics.lineStyle(1, 0x000000, 1);
_shape.graphics.drawRect(10,5,100,100);

Использование приведенного выше кода покажет прямоугольник на вашем экране.

Другие вопросы по тегам