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

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

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

Регистрация: Sep 2002
Сообщений: 202
По умолчанию организация задержки перед переходом на следующий кадр

Приветствую
Я использую такой код:

Код:
stop();

var nDeltaTimer:Number = 1000;
var nStartTimer:Number = getTimer()

this.onEnterFrame = function()
{
	if (getTimer() - nStartTimer > nDeltaTimer)
	{
		play();
	}
}
есть ли что-нибудь более короткое, правильное и менее корявое?

Старый 29.11.2007, 21:58
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 2  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
да, конечно
setInterval
в хелпе прекраснейший пример по этой команде

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

Регистрация: Apr 2007
Сообщений: 1,369
Я бы посоветовал - setTimeout() - там заморачиваться с очиской не надо.


Последний раз редактировалось Molecula; 29.11.2007 в 22:35.
Старый 29.11.2007, 22:29
Zhihar вне форума Посмотреть профиль Отправить личное сообщение для Zhihar Найти все сообщения от Zhihar
  № 4  
Ответить с цитированием
Zhihar

Регистрация: Sep 2002
Сообщений: 202
ок, спасибки
а у него есть какие-нить ограничения?

под чисткой я так понимаю понимается удаление или использование нулевого onEnterFrame?

Старый 29.11.2007, 22:35
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 5  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Есть, 8-й версия плеера.
Чистка в смысле, что при запуске setInterval(), для его удаления нужно было юзать clearInterval(), а для setTimeout() такого не надо делать, и работает, вроде лучше.

Я исправил в предыдущем посте функцию.

Старый 29.11.2007, 22:58
Zhihar вне форума Посмотреть профиль Отправить личное сообщение для Zhihar Найти все сообщения от Zhihar
  № 6  
Ответить с цитированием
Zhihar

Регистрация: Sep 2002
Сообщений: 202
setTimeout тоже использует clearTimeout

на счет setInterval код должен быть примерно таким:

Код:
stop();

var g_nIntervalID:Number;

function PlayFunc()
{
	clearInterval(intervalId);
	play();

}

g_nIntervalID = setInterval(this, "PlayFunc", 1000);
не скажу что он стал меньше :-) хотя все же понятнее и наверное правильнее

Старый 30.11.2007, 00:05
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 7  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Да, но что короче?
Код:
var _mt:Number = setTimeout(delayFunc, 2000);
function delayFunc()
 {
play();
}

Старый 30.11.2007, 01:05
Landysh вне форума Посмотреть профиль Отправить личное сообщение для Landysh Найти все сообщения от Landysh
  № 8  
Ответить с цитированием
Landysh

Регистрация: Nov 2007
Сообщений: 9
Виснет

Код:
        if (this._currentframe > 5) 
			{
           				while(this._currentframe > 5) 
								{							
														
						var _mt:Number = setTimeout(delayFunc, 2000);
						function delayFunc()
 										{
											play();
											this.prevFrame();
										}														
							
						
	   							}       
			
			} 

			
			    if (this._currentframe < 5) 
			{
           				
						 while(this._currentframe < 5) 
						 { 
										
							var _mt:Number = setTimeout(delayFunc, 2000);
						function delayFunc()
 										{
											play();
											this.nextFrame();
										}			
										
						 }
			
			} 
			
			if (this._currentframe == 5) {gotoAndPlay("start")}

Старый 30.11.2007, 01:18
B0Bka вне форума Посмотреть профиль Отправить личное сообщение для B0Bka Найти все сообщения от B0Bka
  № 9  
Ответить с цитированием
B0Bka
 
Аватар для B0Bka

Регистрация: May 2004
Сообщений: 136
Отправить сообщение для B0Bka с помощью ICQ
Landysh на клавиатуре заснул? (почему столько пробелов в коде)
и какой смысл использовать _currentframe? разве нельзя обойтись одними gotoAndStop(n) / gotoAndPlay(n) ?

Старый 30.11.2007, 01:47
Landysh вне форума Посмотреть профиль Отправить личное сообщение для Landysh Найти все сообщения от Landysh
  № 10  
Ответить с цитированием
Landysh

Регистрация: Nov 2007
Сообщений: 9
ВОВка, смысл такой: если мы остановились на фрейме больше или меньше 5, то полюбому должны туда вернуться(на 5ый фрейм). До вставления туда паузы у меня все работало, но слишком быстро(например перескакивал с 2 фрейма на 5 сразу).

Я только начинаю осваивать AS, поэтому во многом могу ошибаться.

P/S/ - я не засыпала на клаве

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

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

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


 


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


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