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

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

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

Регистрация: Sep 2009
Адрес: Челябинск
Сообщений: 43
По умолчанию Никак не понимаю работу функции setInterval

Пришел к выводу что setInterval является моим камнем преткновения. Например пишу функцию и хочу что бы она повторялась. Человечек идет слева направо заходит за пределы и появляется в 0 отметке и опять идет слева направо. Мне захотелось сделать так что бы слева он появился только через 5 сек. В конце скрипта пишу setInterva(5000); но она не работает(((((
Заранее спасибо))

Старый 29.10.2009, 16:22
lexa2000lexa вне форума Посмотреть профиль Отправить личное сообщение для lexa2000lexa Найти все сообщения от lexa2000lexa
  № 2  
Ответить с цитированием
lexa2000lexa

Регистрация: Sep 2005
Сообщений: 950
а вы почитайте хелп, может тогда станет ясней. Что значит запись setInterva(5000)?
что дожно произойти через 5 сек, в этой записе?

Старый 29.10.2009, 16:24
Bitcoolman вне форума Посмотреть профиль Отправить личное сообщение для Bitcoolman Найти все сообщения от Bitcoolman
  № 3  
Ответить с цитированием
Bitcoolman

Регистрация: Sep 2009
Адрес: Челябинск
Сообщений: 43
Так Я читал и нетолько в хелпе... У меня получается такой вот код
Код AS1/AS2:
this.onEnterFrame = function():Void  {
	mc._x += 10;
	if (mc._x>800+(mc._width/2)) {
				mc._x = 0-(mc._width);
	}
};
setInterval(mc,5000);
что не так???

Добавлено через 1 минуту
тока он не робит

Старый 29.10.2009, 16:46
point111 вне форума Посмотреть профиль Отправить личное сообщение для point111 Найти все сообщения от point111
  № 4  
Ответить с цитированием
point111
[+1 15.06.10]
 
Аватар для point111

Регистрация: Feb 2009
Сообщений: 56
если в кадре прописать


Код AS1/AS2:
stop();
aaa = setInterval(function () {
	play();
	clearInterval(aaa);
}, 3000);


setInterval каждые три секунды будет запускать play(), но т.к. одновременно он запустит свое уничтожение, то второго раза не будет

Старый 29.10.2009, 16:56
Bitcoolman вне форума Посмотреть профиль Отправить личное сообщение для Bitcoolman Найти все сообщения от Bitcoolman
  № 5  
Ответить с цитированием
Bitcoolman

Регистрация: Sep 2009
Адрес: Челябинск
Сообщений: 43
Stop на это не работает. И даже за исключением этого все равно это не будет работать...

Старый 29.10.2009, 17:19
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
var l:Number = 800 + mc._width / 2;
onEnterFrame = onEnterFrameHandler;
 
function onEnterFrameHandler():Void
{
	mc._x += 10;
	if (mc._x > l) {
		mc._x = -mc._width;
		delete onEnterFrame;
		setTimeout(timeout_completeHandler, 5000);
	}
}
 
function timeout_completeHandler():Void
{
	onEnterFrame = onEnterFrameHandler;
}

Старый 29.10.2009, 17:24
point111 вне форума Посмотреть профиль Отправить личное сообщение для point111 Найти все сообщения от point111
  № 7  
Ответить с цитированием
point111
[+1 15.06.10]
 
Аватар для point111

Регистрация: Feb 2009
Сообщений: 56
Цитата:
Сообщение от Bitcoolman Посмотреть сообщение
Stop на это не работает. И даже за исключением этого все равно это не будет работать...
читай внимательно ВЕСЬ мой пост, я не решаю твою проблему, я объясняю как работает setinterval, я отвечаю на заголовок темы. И, кстати, это работает, я выдернул это из рабочего проекта.

Старый 29.10.2009, 17:31
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 8  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Код:
var intervalID:Number;

function cycle() {
	mc._x += 10;
	if (mc._x>800+(mc._width/2)) {
				mc._x = 0-(mc._width);
				_root.onEnterFrame=null;
				intervalID=setInterval (startAgain,5000)
	}
}

function startAgain () {
	clearInterval (intervalID);
	_root.onEnterFrame = cycle;
}


_root.onEnterFrame = cycle;

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

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

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


 


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


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