Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.02.2010, 00:01
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 1  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
Arrow get Timer или SetInterval?)

Всем Привет!)
Этот кусок кода работает хорошо...

Курсор наводится на image_mc, image2_mc твинется...).
Код:
image_mc.onRollOver = function() 
{var img_Tween:Tween = new Tween(image2_mc, "_y", Elastic.easeOut,  image2_mc._y,60, 1.7, true);};
Курсор уходит с картинки image_mc, image2_mc твинется...).
Код:
image_mc.onRollOut = function() 
{var img_Tween2:Tween = new Tween(image2_mc, "_y", Elastic.easeOut,  image2_mc._y,-60, 1.7, true);};
Как сделать так что бы твин2 выполнился по прошествии, ну скажем 3-7 секунд с момента ухода курсора т.е. при наступлении image_mc.onRollOut ? А потом при image_mc.onRollOver т.е. при наведении курсора на image_mc выполнился бы первый твин(без задержек как и был, моментально))? И так далее, хххе, до бесконечности)))))))

Старый 27.02.2010, 00:29
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Непонятно изъясняетесь.
Например,
Цитата:
3-7 секунд с момента ухода курсора т.е. при наступлении image_mc.onRollOut
- это разные события.

PS. Может быть вам нужно использовать что-то вроде Bounce.easeOut или другие разновидности движений?


Последний раз редактировалось mooncar; 27.02.2010 в 00:32.
Старый 27.02.2010, 10:33
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 3  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
происходит image_mc.onRollOut (убирается курсор с image_mc), проходит 5 секунд и происходит твин. Все. Вот такая простая схема.

Старый 27.02.2010, 10:57
mr_pol вне форума Посмотреть профиль Отправить личное сообщение для mr_pol Найти все сообщения от mr_pol
  № 4  
Ответить с цитированием
mr_pol
 
Аватар для mr_pol

Регистрация: Oct 2009
Сообщений: 145
Отправить сообщение для mr_pol с помощью ICQ
Код AS1/AS2:
func = function () {
	var img_Tween2:Tween = new Tween(image2_mc, "_y", Elastic.easeOut, image2_mc._y, -60, 1.7, true);
	clearInterval(interval);
};
image_mc.onRollOver = function() {
	clearInterval(interval);
	var img_Tween:Tween = new Tween(image2_mc, "_y", Elastic.easeOut, image2_mc._y, 60, 1.7, true);
};
image_mc.onRollOut = function() {
	interval = setInterval(func, 5000);
};

Старый 27.02.2010, 10:58
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Для осуществления задержки используйте функцию setTimeout
Код AS1/AS2:
to = setTimeout (someFunction, delay);
 
function someFunction() {
 //действия
}
Есть нюансы:

А если курсор уходит с image_mc в промежутке, пока идет анимация?
Или например при этом потом сразу же опять происходит RollOver?

Запоминается ли эта последовательность и ее отработка должна произойти своим чередом, или более позднее событие over или out должно перекрывать предыдущее запланированное или уже начатое и его Tween?

Эти вещи тоже бы предусмотреть нужно.


Последний раз редактировалось mooncar; 27.02.2010 в 11:38.
Старый 27.02.2010, 11:38
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 6  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
Мистер Пол! Все работает! Вауу! Как и надо! Вауу, Вауу, Вауу! О, е-е-е-е-е! Ё-ё-ё-ё!
Мункар, setTimeout что то вообще ни как.... Даже в хелпе флэша такого нет). Хотя у Гурского об этом есть не много "Аналогичной функции setInterval() ActionScript является функция setTimeout() Javascript."

Старый 27.02.2010, 11:39
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ваше, конечно, дело, но потестируйте то, что у вас есть сейчас, имея ввиду эффекты разные, которые могут быть при произвольном уведении-наведении мыши уже в процессе анимации.
Возможно не все так просто, движения могут наслаиваться и нужно еще несколько дополнительных телодвижений:

Код AS1/AS2:
import mx.transitions.Tween;
var tweenHolder:Object = new Object();
image_mc.onRollOut = imgOut;
image_mc.onRollOver = imgOver;
 
function imgOver () {
	image_mc.enabled = false ;
	tweenHolder['off'].stop();
	tweenHolder['on'] = new Tween(image2_mc, "_y", mx.transitions.Elastic.easeOut, image2_mc._y, 60, 1.7, true);	
	tweenHolder['on'].onMotionFinished = imgEnable;	
}
 
function delayedTween () {
	image_mc.enabled = false ;
	tweenHolder['on'].stop();
	tweenHolder['off'] = new Tween(image2_mc, "_y", mx.transitions.Elastic.easeOut, image2_mc._y, -60, 1.7, true);
	tweenHolder['off'].onMotionFinished = imgEnable;		
}
 
function imgOut () {
	to = setTimeout(delayedTween, 3000);	
}
 
function imgEnable () {
	image_mc.enabled = true ;
}
Тут учитывается, если что, остановка предыдущего движения и деактивация кнопки до выполнения предыдущего задания.

PS. А вообще-то setTimeout очень даже "как" - ведь он проще, чем setInterval, так как не нужно стирать интервал, после первого выполнения он очистится автоматически. То есть на одну строку кода меньше.
Хелп юзайте!


Последний раз редактировалось mooncar; 27.02.2010 в 12:47.
Старый 27.02.2010, 12:10
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 8  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
смотрел я хелп и 8 макромедии и 2004 мх, нету там ни чего про setTimeout, но ваш пример попробую.

Старый 27.02.2010, 12:16
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ага. Да бог с ним, с setTimeout.
Ваня Ветров, вы представляете, что должно происходить, если курсор уводится / наводится уже в процессе происходящей анимации? Не то, чтобы сильно меня это заботит, просто любых грабель можно избежать, если заранее об этом подумать.
Если бы не отсрочка, все было бы не так важно.
Ведь в примере mr_pol (да и у вас изначально) движения, по крайне мере, img_Tween, будут наслаиваться, если многократно уводить - наводить мышь, и результирующее движение будет не совсем то, что вы ждете.


Последний раз редактировалось mooncar; 27.02.2010 в 12:20.
Старый 27.02.2010, 23:44
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 10  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
mooncar тестанул мистера Пола скрипт на низких скоростях твина где то на 19. Да! Присутствует глюк.) Суть его такова. Происходит РоллАут, включается задержка, начинает выполняться твин.... картинка медленно ползет куда ей нужно. Не долго думая инициирую РоллОвер. Включается твин РоллОвера, картинка занимает финальное положение, небольшая задержка, а потом она стремительно уноситься на ту позицию в которой она находилась до РоллОвера и продолжает довершать твин вызванный РоллАутом. Агась). Но на высоких скоростях, пока глюков не было замечено). Как эту болезнь побороть. Ваш скрипт не много мне не подходит. Не должно быть выключенного Энейбледа. У меня есть мыслишка, что можно попытаться как то задействовать для первоначальной цели онЭнтерФрейм? Жду выших Ответов!)

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.