![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2010
Сообщений: 21
|
Требуется получать событие MOUSE_OVER все время (с некоторым интервалом, например, 10 раз в секунду), пока курсор над объектом, а не только в момент наведения курсора. Как это лучше сделать?
И сразу второй вопрос - как сделать цикл, что бы на каждой итерации была задержка? Пробовал таймер, не получилось. |
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Sep 2010
Сообщений: 21
|
Да, плохо... Есть работающий пример?
|
|
|||||
|
Регистрация: Sep 2010
Сообщений: 21
|
КорДум: "лучше пользоваться enterFrame"
А если у меня фреймы не меняются? Я скролл делаю. У меня при наведении курсора на объект меняется положение другого объекта (на N пикселей, каждые 1/m сек). |
|
|||||
|
"enterFrame" работает от количества кадров, не вариант. Таймер здесь в раз будит.
А в целом КорДум прав. |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 21
|
stweet
Ок. Но все же, как правильно организовать таймер в моем случае? Таймер может генерить event'ы с некоторой периодичностью? |
|
|||||
|
нет, <<!"enterFrame" работает от количества кадров!>> скинь пример, допишу отдам.
|
|
|||||
|
Регистрация: Sep 2010
Сообщений: 21
|
stweet
Ну а какой пример? Пусть будет 2 объекта - button и ... да что угодно, например graphic. При наведении курсора на button, graphic должен смещаться вверх на 2 пикселя каждые 1/20 сек. Вот и весь проект ![]() |
|
|||||
|
Единственное, добавь булевое значение, сори не дописал, не успел. Если что завтро до помогу.
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.utils.Timer; public class TestTimerBtn extends Sprite { private var tmp_btn:Sprite; private var tmp_tim:Timer; private var n:int; public function TestTimerBtn ():void { tmp_btn = new Sprite(); tmp_btn.graphics.lineStyle(1); tmp_btn.graphics.beginFill(0x0000ff, 1); tmp_btn.graphics.drawRect(50, 50, 100, 50); addChild(tmp_btn); tmp_btn.addEventListener(MouseEvent.MOUSE_UP, M_BTN1); tmp_btn.addEventListener(MouseEvent.MOUSE_OVER, M_BTN2); tmp_tim = new Timer(100, 0); // Сдесь "100" интервал. "0" количество раз. tmp_tim.addEventListener(TimerEvent.TIMER, timeOut); } private function M_BTN1(e:MouseEvent):void { tmp_tim.start(); } private function M_BTN2(e:MouseEvent):void { tmp_tim.stop(); } private function timeOut(e:TimerEvent):void { n ++; if (n == 10) { trace("Yes"); n = 0; } } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|