![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 2
|
Здравствуйте. Помогите пожалуйста оптимизировать код.
В примере у меня игра "Морской бой". Код создания первого трех-палубника следующий: //3-палубник A var shipCell3a:Field = new Field(); shipCell3a.gotoAndStop(23); shipCell3a.x = 100; shipCell3a.y = 100; addChild(shipCell3a); shipCell3a.addEventListener(MouseEvent.MOUSE_DOWN, startShipDrag3a); shipCell3a.addEventListener(MouseEvent.MOUSE_UP, stopShipDrag3a); shipCell3a.addEventListener(Event.ENTER_FRAME, dragshipCell3a); var clickOffSet3a:Point = null; function startShipDrag3a(event:MouseEvent) { setChildIndex(event.target as DisplayObject, numChildren - 1); clickOffSet3a = new Point(event.localX,event.localY); } function stopShipDrag3a(event:MouseEvent) { clickOffSet3a = null; } function dragshipCell3a(event:Event) { if (clickOffSet3a != null) { shipCell3a.x = mouseX - clickOffSet3a.x; shipCell3a.y = mouseY - clickOffSet3a.y; } } Как я могу оптимизировать код, и использовать только одно событие для нескольких корабликов? Спасибо. |
|
|||||
|
Не надо путать оптимизацию с рефакторингом
![]() Самое минимальное что можно сделать - заменить clickOffSet3a и clickOffset3b на словать: var clickOffSetByShipCell:Dictionary = new Dictionary(); function startShipDrag(event:MouseEvent) { var shipCell:Field = event.target; setChildIndex(shipCell, numChildren - 1); clickOffSetByShipCell[shipCell] = new Point(event.localX,event.localY); } function stopShipDrag(event:MouseEvent) { var shipCell:Field = event.target; clickOffSetByShipCell[shipCell] = null; } function dragshipCell(event:Event) { var shipCell:Field = event.target; var offset:Point = clickOffSetByShipCell[shipCell]; if (offset != null) { shipCell3a.x = mouseX - offset.x; shipCell3a.y = mouseY - offset.y; } } |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 2
|
Спасибо за дельный совет, буду пробовать.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:49. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| события оптимизация |
|
|