![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Задача следующая: на поверхности MovieClip отлавливать координаты движущегося нажатого курсора мыши. Нужна координаты места нажатия (получаются без проблем), а затем все последующие координаты точек через которые проходит нажатый курсор.
код размещен в первом кадре MovieClip'а "_ov" import flash.events.Event; import flash.events.MouseEvent; var cx:Number; var cy:Number; var nx:Number; var ny:Number; var down:Boolean; function refr(e:Event):void { //координаты точек, через которые проходит нажатый курсор cx = mouseX; cy = mouseY; trace("x:",cx,"y:",cy); } this.addEventListener(MouseEvent.MOUSE_DOWN, reg); function reg(r:MouseEvent):void { //координаты точки в которой был нажат курсор nx = mouseX; ny = mouseY; trace("сохранены начальные координаты х:",nx,"y:",ny); if (r.buttonDown == true) { this.addEventListener(MouseEvent.MOUSE_MOVE, refr); } else { this.removeEventListener(MouseEvent.MOUSE_MOVE, refr); } } ![]() |
|
|||||
import flash.events.Event; import flash.events.MouseEvent; var cx:Number; var cy:Number; var nx:Number; var ny:Number; var down:Boolean; function refr(e:Event):void { //координаты точек, через которые проходит нажатый курсор cx = mouseX; cy = mouseY; trace("x:",cx,"y:",cy); } this.addEventListener(MouseEvent.MOUSE_DOWN, reg); function reg(r:MouseEvent):void { //координаты точки в которой был нажат курсор nx = mouseX; ny = mouseY; trace("сохранены начальные координаты х:",nx,"y:",ny); this.addEventListener(MouseEvent.MOUSE_MOVE, refr); this.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); } function onMouseUp(e:MouseEvent):void { this.removeEventListener(MouseEvent.MOUSE_MOVE, refr); this.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); } Цитата:
Последний раз редактировалось FlashRus; 11.06.2012 в 20:23. |
|
|||||
|
Спасибо вам! Действительно решение простое!
Добавлено через 12 минут А какой смысл написание кода в классе Main? Почему нельзя по-старинке? Последний раз редактировалось Шурик_2; 11.06.2012 в 20:30. Причина: Всё получилось, благодаря FlashRus! |
|
|||||
|
http://www.flasher.ru/forum/showthread.php?t=163989
Суть не в классе Main а в парадигме ООП. Код в классах значительно проще отлаживать, он более читабелен для вас и для других программистов. Последний раз редактировалось FlashRus; 11.06.2012 в 21:09. |
|
|||||
|
Я так понял, что это вопрос удобства...
|
|
|||||
|
Не только.
Когда вы пишете код в кадрах, то вызывается метод addFrameScript() Погуглите... Да и в целом... большой проект в кадрах превратиться помойку кода, который в лучшем случае сможет понять его разработчик. Писанина в кадрах сказывается на производительности, отрубает и(или) усложнят реализацию более сложных структур. Последний раз редактировалось FlashRus; 11.06.2012 в 21:17. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Писанина в кадрах — пережиток времен, когда по сути не было языка программирования, а были только команды управления анимацией и примитивная интерактивность. С 2004 года, то есть уже 8 лет, как код ActionScript пишется в классах и является полноценным программным кодом.
Разбираться в проекте, где куски кода распиханы по внутренностям символов в библиотеке, когда совершенно невозможно понять, в какой момент и при каких условиях эти фрагменты вступят в действие — сущий ад для разработчика. Не говоря уже о собственно концепциях проектирования и командной разработки, и тем более — поддержки и развития проекта.
__________________
Reality.getBounds(this); |
|
|||||
|
Значит буду практиковаться в написании кода в классах. У меня просто специфика - баннерная реклама.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|