Использование drawLine для объекта UIComponent во Flex - PullRequest
0 голосов
/ 01 мая 2011

Я пытался нарисовать серию точек, используя UIComponent, используя:

var line : UIComponent = new UIComponent();
...
line.graphics.lineTo(renderPoint.x, renderPoint.y);

, а затем обновить mainContainer, который является Canvas объектом, используя:

mainContainer.addChild(line);

Основной контейнер представлен в MXML как:

<mx:Panel x="270" y="10" width="690" height="680" id="mainContainerPanel">
    <mx:Canvas width="690" height="680" initialize="onInit()" id="canvas">
    <mx:Script>
        protected function onInit():void
        {
            spiro = new Spirograph(canvas);         
        }
    </mx:Script>
    </mx:Canvas>
</mx:Panel>

Обратите внимание

Я использую событие Event.ENTER_FRAME, чтобы выполнить drawLine(), и оно перебирает массив, чтобы каждый раз рисовать:

for (var j:int = 0; j < _segment.length; j++)
{
    renderPoint = _segment[j];
    line.graphics.lineTo(renderPoint.x, renderPoint.y);
}
mainContainer.addChild(line);

Проблема в том, что хотя у меня есть все renderPoint сегменты и т. Д. Линия никогда не рисуется или никогда не отображается. Я думаю, это может быть из-за некоторой вещи Flex, которая не так очевидна.

Я пытался не использовать весь код здесь для удобства чтения, надеюсь, описание простое.

1 Ответ

1 голос
/ 01 мая 2011

Прежде всего, я не уверен, является ли ваш код реальной копией-вставкой из кода ActionScript.Объявление стиля полей происходит из Java или C #, но не из AS.У вас ошибка компилятора в строке UIComponent line?

Во-вторых, блок Script вашего Panel.Не следует помещать его во вложенные объявления в компоненте MXML, но прямо как дочерний элемент корневого узла компонента.И лучше окружить код в блоке Script внутри блока CDATA.

Как насчет рисования в UIComponent Я бы рекомендовал вам присвоить ему значения width и height.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...