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

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

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

Регистрация: Feb 2009
Сообщений: 5
Attention почему не работает setInterval в цикле?

Помогите пожалуйста разобраться с задержкой показа.

Делаю текстовый баннер.

У меня есть файл vars.htm, его содержимое:
Цитата:
myVar01=первый текстRRвторой текст RRну и конечно третий&myVar02=RR&myVar03=3000
Из него забираются данные во флешку:
Код AS1/AS2:
var data_lv:LoadVars = new LoadVars ();
data_lv.onLoad =  function (success) { 
	if(success) {
		var texts:Array = this.myVar01.split(this.myVar02);
		var len:Number = texts.length;
			for (var i:Number = 0; i < len; i++)  {
				setInterval((_root.klip.text = texts[i].toString()), this.myVar03);
			}
	}
}
data_lv.load("vars.htm");
во самой флешке есть только одно текстовое поле с именем klip, по идее - при проходе по массиву texts, при каждой передаче в _root.klip.text, должна происходить задержка в 3 сек. Но в итоге флешка мне показывает только последнее значение из переменной myVar01 ("ну и конечно третий").

Пробовал делать еще так:
Код AS1/AS2:
var data_lv:LoadVars = new LoadVars ();
data_lv.onLoad =  function (success) { 
	if(success) {
		var texts:Array = this.myVar01.split(this.myVar02);
		var len:Number = texts.length;
			for (var i:Number = 0; i < len; i++)  {
 
				setInterval(function(klip, texts, i){_root.klip.text = texts[i].toString()}, this.myVar03);
			}
	}
}
data_lv.load("vars.htm");
тут вообще пишет undefined.

Я не бог весть какой спец в actionscript, но стараюсь хотябы научиться простым вещам.

Подскажите, плиз, что я делаю не так?

Старый 01.02.2009, 23:48
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 2  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Посмотрите на синтаксис setInterval - он трех видов.
Особенности:
1) Не надо писать оператор вызова функции ()
2) Ссылка this правильно работать не будет - воспользуйтесь третим видом синтаксиса или другой ссылкой.

Старый 02.02.2009, 01:41
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
chingachgoog, подскажите, как выглядит третий вид setInterval
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 02.02.2009, 11:56
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 4  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от dimarik Посмотреть сообщение
chingachgoog, подскажите, как выглядит третий вид setInterval
Третий - когда вначале указывается путь objectReference.
Но я так понимаю вас смутило, то что их три, а не два?
Это потому, что по сути первый синтаксис представлен двумя видами:
ссылкой на функцию и возможностью задать литерал непосредственно.

Старый 02.02.2009, 14:00
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
ссылкой на функцию и возможностью задать литерал непосредственно.
Не котируется. Синтаксиса два.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.02.2009, 14:58
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 6  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Цитата:
Сообщение от iNils Посмотреть сообщение
Не котируется. Синтаксиса два.
Хорошо. Если код
Код:
setInterval(моя_функция, 100)

function моя_функция(){
	trace("!")
}
и код
Код:
setInterval(function(){
					  trace("!")
					  }, 100)
"котируются" как один и тот же синтаксис - то я не спорю.
Но замечу, что разница между этими двумя записями есть.
А есть еще один вариант записи - т.н. "второй синтаксис".
Итого я вижу три различных варианта записи setInterval.

Старый 02.02.2009, 15:22
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 7  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
chingachgoog, для Вас
Код AS1/AS2:
trace("aa");
и
Код AS1/AS2:
var s:String = "aa";
trace(s);
2 разных синтаксиса?
__________________
4am is time to rock

Старый 02.02.2009, 15:36
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 8  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
DarkLight, вы правы - я различаю эти два варианта записи.

Старый 02.02.2009, 16:02
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Для того, кого скоро забанят. Вот это синтаксис:
Код:
setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number
В приведенном выше примере, в обоих случаях для первого синтаксиса первым аргументом является Function, в не зависимости от того в каком виде оно туда попало.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 02.02.2009, 16:39
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 10  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
2 chingachgoog

Синтаксис и способы написания, это разные вещи. Можно придумать 100 способов передачи параметров в функцию например, но то что в нее нужно передать лишь определенное количество параметров определенного типа, это и есть синтаксис.

Код:
trace ( "aa" );
и
Код:
var s:String = "aa";
trace ( s );
В обоих случаях синтаксис записи "trace" верен, синтаксических ошибок нет. В обоих случаях отдается String, в качестве параметра, значит оба примера синтаксически одинаковы. Сама запись кода, конечно разная, но не путайте одно с другим.

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

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

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


 


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


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