![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2009
Адрес: Moskva
Сообщений: 20
|
Привет всем! подскажите плиз, возникла ситуация:
мне нужно двигать объект поверх нарисованной решетки. я один раз рисую решетку, потом просто двигаю поверх объект... если шаг решетки большой, то тормозов не возникает, если шаг маленький, то при перемещении объекта за мышью, движение начинает тормозить... в тестовом примере я специально умножаю предельные координаты сетки на 5 (y0*5), так проблема более явно проявляется. в моей задаче иногда необходимо в бэкграунде рисовать разные достаточно сложные сетки и все начинает тормозить.. код ниже..по умолчанию рисуется сетка с шагом 10, все таскается нормально, при нажатии на кнопку, рисуется сетка с шагом 2 - возникают тормоза... в чем может затык, как можно ускорить процесс, что я не так делаю ? <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" addedToStage="_addedToStage()"> <mx:Script> <![CDATA[ private function _addedToStage(): void{ _updateGrid(10); stage.addEventListener(MouseEvent.MOUSE_MOVE, _mouseMove); } private function _updateGrid(n: int): void{ var y0: Number = 0; var x0: Number = 0; var x1: Number = stage.width; var y1: Number = stage.height; _canvas.graphics.clear(); _canvas.graphics.lineStyle(0,0xff0000, 0.1); for (var i: int=0; i < x1/n; i++){ _canvas.graphics.moveTo(i*n, -y0*5); _canvas.graphics.lineTo(i*n, y1*5); } for (var i: int=0; i < y1/n; i++){ _canvas.graphics.moveTo(-x0*5, i*n); _canvas.graphics.lineTo( x1*5, i*n); } } private function _buttonClick(event: Event): void{ _updateGrid(2); } private function _mouseMove(event: MouseEvent): void{ var p: Point = _canvas.globalToLocal(new Point(event.stageX, event.stageY)); moved.x = p.x; moved.y = p.y; } ]]> </mx:Script> <mx:Canvas id="_canvas" top="0" left="0" right="00" bottom="0"> <mx:Canvas x="210" y="289" width="67" height="61" backgroundColor="#FF0000" id="moved"> </mx:Canvas> </mx:Canvas> <mx:Button label="Button" right="0" top="0" click="_buttonClick(event)"/> </mx:Application> |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:01. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|