Быстрая краска на Flex Mobile - PullRequest
       22

Быстрая краска на Flex Mobile

0 голосов
/ 24 сентября 2011

Я пытаюсь создать приложение, которое отслеживает точки касания и рисует круги в этих точках, используя Flash Builder.Следующее работает отлично, но через некоторое время оно начинает отставать и касание будет значительно опережать нарисованные круги.Есть ли способ рисования кругов, который не создает задержки, так как добавляется все больше и больше?

В объявлениях у меня есть:

    <fx:Component className="Circle">
        <s:Ellipse>
            <s:stroke>
                <s:SolidColorStroke alpha="0"/>
            </s:stroke>
        </s:Ellipse>
    </fx:Component>

И это функция рисования:

            var c:Circle = new Circle();
            c.x = somex;
            c.y = somey;
            c.fill = new SolidColor(somecolorint);
            c.height = somesize;
            c.width = somesize;
            c.alpha = 1;
            addElement(c);
            c = null;

1 Ответ

0 голосов
/ 24 сентября 2011

Попробуйте взглянуть на создание полноэкранного Растрового изображения , созданного с помощью класса BitmapData . По мере перемещения точек касания обновляйте данные растрового изображения в координатах, где произошло касание. Изменение и перетаскивание растрового изображения размером с экран чрезвычайно быстрое и, вероятно, отлично подойдет для того, что вы пытаетесь сделать.

Другой часто встречающийся компромисс между производительностью - это создание серии линий вместо непрерывных кругов. Вы создаете новый сегмент линии только тогда, когда пройдено определенное расстояние, это позволяет ограничить количество узлов в сегменте, тем самым поддерживая высокую производительность.

...