![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 6
|
Всем доброго времени.
Уважаемые знатоки, прошу помогите, в чем проблема? События OVER и OUT работают не верно. Из-за чего такое?! package { import flash.display.* import flash.events.*; import flash.net.*; public class Main extends Sprite { private var sprite:Sprite = new Sprite(); private var loader:Loader = new Loader(); private var url1:URLRequest, url2:URLRequest; public function Main():void { this.init(); } private function init():void { this.url1 = new URLRequest('http://localhost/normal.png'); this.url2 = new URLRequest('http://localhost/hover.png'); this.loader.load(this.url1); this.loader.addEventListener(MouseEvent.MOUSE_OVER, this.onMouseOver); this.loader.addEventListener(MouseEvent.MOUSE_OUT, this.onMouseOut); this.sprite.addChild(this.loader); super.addChild(this.sprite); } private function onMouseOver(e:MouseEvent):void { this.loader.load(this.url2); } private function onMouseOut(e:MouseEvent):void { this.loader.load(this.url1); } } } Получается, так, что дребезжать начинает. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Контент исчезает при наведении (load() вызывает unload() предыдущего контента, лоадер становится "пустым" контейнером, соответственно возникает событие mouseOut, хотя фактически действие — mouseOver. Затем новый контент появляется и возникает событие mouseOver, и так по кругу. Самый странный способ делать кнопки) Хотя бы закрасьте спрайт, в котором лоадер, прозрачной заливкой и повесьте листенеры мыши на него, а не на лоадер. Ну а лучше конечно загрузить оба изображения сразу и менять им visible или alpha.
__________________
Reality.getBounds(this); |
|
|||||
|
Цитата:
первые два будут срабатывать всякий раз как курсор перемещается над подписанным на событие объектом, а вторые будут срабатывать только когда курсор "заехал" на объект и "выехал" с него, т.е. во время перемещения курсора в пределах этого объекта, события доставляться не будут. Предпочтительнее как раз использовать второй вариант советую заменить this.loader.addEventListener(MouseEvent.MOUSE_OVER, this.onMouseOver); this.loader.addEventListener(MouseEvent.MOUSE_OUT, this.onMouseOut); |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 6
|
Пожалуйста покажи пример...
Измени этот код, тут все равно немного. |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 6
|
Переделал. Спасибо, работает...
Через visible сделал. Логично. Сразу, что - то не сообразил. Loader вообще убрал это. В пакете все сделал. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|