![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Подскажите плиз.
Курсор определяет перемещение спрайта только вертикально или только горизонтально, событие MouseEvent.MOUSE_DOWN вызывает функцию старта перемещения. Проблема в том что при перемещении курсор может уйти со спрайта и тогда MouseEvent.MOUSE_UP не сработает. Подскажите как можно реализовать решение данной проблемы, либо отследить отжатие мыши вне спрайта, либо присваивать до момента MouseEvent.MOUSE_UP курсору фиксированное значение одной из координат спрайта (разумеется если это возможно). А может каким-то другим способом можно решить? |
|
|||||
|
Banned
[+5 04.06.13]
[+1 08.06.13] Регистрация: May 2013
Сообщений: 52
|
Не знаю, как будет правильнее всего, но я бы повесил MOUSE_UP на stage.
import flash.display.Sprite; import flash.events.MouseEvent; import flash.geom.Rectangle; var sliderBounds:Rectangle = new Rectangle(0, 0, 300, 0); var sliderSprite:Sprite = new Sprite(); sliderSprite.graphics.beginFill(0xff0000); sliderSprite.graphics.drawRect(0, 0, 60, 20); this.addChild(sliderSprite); stage.addEventListener(MouseEvent.MOUSE_UP, stage_MouseUpHandler); sliderSprite.addEventListener(MouseEvent.MOUSE_UP, sliderSprite_MouseUpHandler); sliderSprite.addEventListener(MouseEvent.MOUSE_DOWN, sliderSprite_MouseDownHandler); //-------------------------------------------------------------------- // Event handles //-------------------------------------------------------------------- function stage_MouseUpHandler(event:MouseEvent):void { sliderSprite.stopDrag(); } function sliderSprite_MouseUpHandler(event:MouseEvent):void { sliderSprite.stopDrag(); } function sliderSprite_MouseDownHandler(event:MouseEvent):void { sliderSprite.startDrag(false, sliderBounds); } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Есть же MouseEvent.RELEASE_OUTSIDE
__________________
Reality.getBounds(this); |
|
|||||
|
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
Цитата:
|
|
|||||
|
Banned
[+5 04.06.13]
[+1 08.06.13] Регистрация: May 2013
Сообщений: 52
|
RELEASE_OUTSIDE доступен с версии флэш плеера 11.3, значит во FlashDevelop нужно выбрать поддерживаемую версию плеера в настройках.
|
|
|||||
|
[+1 06.03.13]
Регистрация: Feb 2007
Сообщений: 174
|
И то правда Ваша. У меня была 11.2. Спасибо.
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Лучше все-таки сделать через mouseEnabled/mouseChildren
Во-первых, не будет проблем с событиями Во-вторых, не будет проблем с совместимостью |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|