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

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

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

Регистрация: Jan 2007
Адрес: Москва
Сообщений: 18
Отправить сообщение для Batur с помощью ICQ
По умолчанию Как узнать, обновилась переменная или нет?

Здравствуйте, участники форума.

Столкнулся с задачей, решения найти не могу:
Есть flash-счетчик. Он якобы считает посетителей на сайте. На самом деле происходит это посредством вытягивания переменной из текстового файла и показа ее в виде Dynamic text. Для того, чтобы обновление происходило каждые 5 секунд, а не только при перезагрузке страницы сделано 5 кадров длительностью 1 сек. каждый. В первом кадре код, который вытягивает переменную. Поскольку .swf зациклен, каждые 5 секунд код заново вытягивается и показывается. Способ, конечно, деревянный, но все прекрасно работает и я доволен.

А теперь сама задача:
Мне очень надо, чтобы при изменении переменной проигрывался определенный Movie Clip.
Но сама переменная изменяется значительно реже, чем .swf ее обновляет. Т. е. проигрывать Movie Clip после каждого обновления нельзя. Надо, чтобы флеш каким-то образом определял, изменилась переменная или нет и, если изменилась, запускал Movie Clip.

Буду очень благодарен как за конкретное решение задачи, так и за совет, где найти. Под рукой оба тома Библии пользователя, но проблема в том, что я даже не знаю, в каком из разделов искать.

Заранее спасибо и... простите ламера (надо себе эту фразу уже в подпись поставить).

P. S. Flash MX 2004 Pro

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

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
В 5-ом кадре ставишь
Код:
old = твоя_переменная;
В первом кадре ставишь после вытягивания переменной
Код:
if (твоя_переменная!=old) {
//здесь действия которые хочешь чтобы были после изменения счетчика
}
Вобще не знаю сохранится или нет переменная old,
я бы тебе для такого просчета посоветовал использовать или onEnterFrame или setInterval.

Старый 08.05.2007, 13:00
Batur вне форума Посмотреть профиль Отправить личное сообщение для Batur Посетить домашнюю страницу Batur Найти все сообщения от Batur
  № 3  
Ответить с цитированием
Batur

Регистрация: Jan 2007
Адрес: Москва
Сообщений: 18
Отправить сообщение для Batur с помощью ICQ
Неа, не функционирует
А как правильно записать переменную today? Я pаписал вот так:
if (this.today != old)
__________________
Простите ламера :(

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
function idChange (prop, oldVal, newVal) {
	trace (newVal + " обновилась");
	return newVal;
}
this.watch ("id", idChange, 55);
id = 0;
this.onEnterFrame = function () {
	id++;
};
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Код:
function idChange (prop, oldVal, newVal) {
 trace("было "+ oldVal + " стало " + newVal );
 if( oldVal == newVal) return oldVal;
 trace (" обновилась");
 return newVal;
}
// ставим "id" под контроль:
this.watch ( "id", idChange );

// а теперь каждый кадр сажаем id, каждый 25-й раз он поменяется
// это просто для примера
var num:Number = 0;
this.onEnterFrame = function () {
 num++;
 id = Math.floor( num / 25 );
};
Так немного нагляднее.
И почему 55?


Последний раз редактировалось Kikasso; 11.05.2007 в 12:35.
Старый 08.05.2007, 15:54
Batur вне форума Посмотреть профиль Отправить личное сообщение для Batur Посетить домашнюю страницу Batur Найти все сообщения от Batur
  № 6  
Ответить с цитированием
Batur

Регистрация: Jan 2007
Адрес: Москва
Сообщений: 18
Отправить сообщение для Batur с помощью ICQ
Цитата:
Сообщение от Kikasso
Код:
function idChange (prop, oldVal, newVal) {
 trace( newVal );
 if( oldVal == newVal) return oldVal;
 trace (" обновилась");
 return newVal;
}
this.watch ( "id", idChange );
var num:Number = 0;
this.onEnterFrame = function () {
 id = Math.floor( num++ / 25 );
};
Так немного нагляднее.
И почему 55?
С каждым постом узнаю все новые и новые способы решения своей проблемы. Одно огорчает, ни в одном из них ничего не понимаю.
Первый совет был хоть как-то доступен моему абсолютно гуманитарному разуму, а здесь я совсем запутался.
__________________
Простите ламера :(

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

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

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Я снабдил комментами. Посмотрите в хелпе про watch. Это очень полезная штука.

Старый 08.05.2007, 17:28
Batur вне форума Посмотреть профиль Отправить личное сообщение для Batur Посетить домашнюю страницу Batur Найти все сообщения от Batur
  № 9  
Ответить с цитированием
Batur

Регистрация: Jan 2007
Адрес: Москва
Сообщений: 18
Отправить сообщение для Batur с помощью ICQ
2 Kikasso: Чтобы хелп читать, надо, как минимум, английский знать . А за комментарии большое спасибо, но они мне, к сожалению, ровным счетом ничего не говорят. Во всем этом безобразии я понимаю только суть: при помощи кода из текстового файла вытягивается переменная, и транслируется в текстовое поле в виде динамического текста. В какой-то момент другой код проверяет изменилась ли со времени последнего обновления переменная. И, если изменилась, запускает Movie Clip.

Фраза «// ставим "id" под контроль:» мне совершенно непонятна, потому что непонятно что этот самый id идентифицирует и зачем это вообще в данном случае нужно

Когда я создавал тему, то ожидал, что всё окажется проще, но, как всегда в таких случаях, ошибся.
__________________
Простите ламера :(

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от Batur
Фраза «// ставим "id" под контроль:» мне совершенно непонятна, потому что непонятно что этот самый id идентифицирует и зачем это вообще в данном случае нужно
>>>>>
Цитата:
Как узнать, обновилась переменная или нет?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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