|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2011
Сообщений: 7
|
Увеличение по событию мыши и срабатывание по времени
Здравствуйте, уважаемые,
подскажите, пожалуйста, новичку - написала код для случая: курсор мыши подносится - картинка увеличивается, курсор отодвигается - картинка возвращается в первоначальное положение obj.addEventListener (MouseEvent.MOUSE_OVER, zooming); function zooming (e:MouseEvent):void{ obj.scaleX+=1; obj.scaleY+=1; } obj.addEventListener (MouseEvent.MOUSE_OUT, antizooming); function antizooming (e:MouseEvent):void{ obj.scaleX-=1; obj.scaleY-=1; } И совсем неодолимый вопрос - как сделать, чтобы процесс происходил в любом случае, даже если курсор не двигается. Например, через 7 сек бездействия мыши зум запускается автоматически, длится 3 сек и устраняется автоматически, снова на 7 сек. Подозреваю Timer, но что и куда? Последний раз редактировалось Wolsh; 18.06.2011 в 15:24. Причина: теги |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Для оформления своего кода надо использовать теги [code][/code]
У картинки как и любого объекта на дисплее есть координаты, а именно координаты точки привязки, которая всегда находится в верхнем левом углу объекта. Высота и ширина увеличиваются только в положительную область - то есть вправо и вниз. Для имитации изменения размера из центра Вам придется также смещать картинку в отрицательную область на половину прироста размера. Про Timer.. ну сначала в хелпе почитайте, потом спросите, что не получается конкретно.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jun 2011
Сообщений: 7
|
Спасибо, что так быстро.
Про теги поняла. Про Timer имела ввиду - как программным языком поставить условие "Если мышь неактивна n сек, то..." Пошла читать хелп в любом слу |
|
|||||
Регистрация: Jun 2011
Сообщений: 7
|
спасибо, теперь буду долго думать своим филологическим мозгом)
|
|
|||||
Справедливо для Flash IDE:
Точку привязки("псевдо") можно установить при создании объекта (одно из 9 положений). Объект можно переместить оносительно точки привязки (ручками двигаете и все). Масшатб работает во все стороны от точки привязки (как я понял, иде сама генерит ту часть кода, которая смещает "псевдоцентр" при всех преобразованиях. var myTimer:Timer = new Timer(1000, 0); /*создаем таймер с интервалом в 1000 миллисекунд и бесконечной цикличностью (0)*/ addTimer(); function addTimer() { myTimer.addEventListener(TimerEvent.TIMER, timerHandler); /*листенер, который будет вызывать функцию timerHandler как только таймер отсчитает необходимое время*/ myTimer.start(); //запускаем таймер } function removeTimer() { /*вызов функции прекратиться при люом из этих 2х запросов, но для экономии ресурсов, лучше вызвать оба*/ myTimer.removeEventListener("timer", timerHandler);/*удаляем листенер*/ myTimer.reset();//сбрасываем счетчик на 0 и останавливаем таймер, иначе он будет продолжать в фоне*/ } obj.addEventListener (MouseEvent.MOUSE_OVER, zoomIn); obj.addEventListener (MouseEvent.MOUSE_OUT, zoomOut); function zoomOut (e:MouseEvent):void{ zoomObj('out'); addTimer();/*добавляем таймер когда курсор покидает объект*/ } function zoomIn (e:MouseEvent):void{ removeTimer();/*удалаем таймер на время пока курсор над объектом*/ zoomObj('in'); } function zoomObj(zoomMode:String = 'out'):void{ if(zoomMode == 'in'){ obj.scaleX = obj.scaleY = 2; }else{ obj.scaleX = obj.scaleY = 1; } } function timerHandler(event:TimerEvent):void { /*считаем такты счетчика, и разбиваем их на интервалы по 10 (3 и 7 секунд), если их больше 3, то увеличиваем, в противном случае уменьшаем*/ if(event.target.currentCount % 10 >= 3){ zoomObj('in'); }else{ zoomObj('out'); } } //пользуйтесь табом, его промежуток равен 4 пробелам (у большинства)
__________________
RTFM Последний раз редактировалось S-ed; 19.06.2011 в 14:01. Причина: добавил комментарии |
|
|||||
Регистрация: Jun 2011
Сообщений: 7
|
ух ты, спасибо большое! сейчас буду разбираться
|
|
|||||
GBee
Приведенный код не претендовал на грамотность. Да и код без использования классов... Но твинер требует отделных либ, или много кода.
__________________
RTFM |
|
|||||
S-ed, к вашему коду претензий не имею (ну почти не имею), я просто предложил альтернативу. Хорошие дополнительные библиотеки много веса не прибавят, а работу могут ускорить и облегчить.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
Часовой пояс GMT +4, время: 03:46. |
|
« Предыдущая тема | Следующая тема » |
Теги |
timer |
|
|