Здрастуйте, нувся із завданням, рішення знайти
Зіткнувся із завданням, рішення знайти не можу: Є flash-лічильник. Він нібито рахує відвідувачів на сайті. Насправді відбувається це за допомогою витягування змінної з текстового файлу та показу у вигляді Dynamic text. Щоб оновлення відбувалося кожні 5 секунд, а не тільки при перезавантаженні сторінки зроблено 5 кадрів тривалістю 1 сек. кожен. У першому кадрі код, який витягує змінну. Оскільки .swf зациклений, кожні 5 секунд код знову витягується і показується. Спосіб, звичайно, дерев'яний, але все чудово працює, і я задоволений.
А тепер саме завдання: Мені дуже треба, щоб при зміні змінної програвався певний Movie Clip. Але сама змінна змінюється значно рідше, ніж .swf її оновлює. Т. е. програвати Movie Clip після кожного оновлення не можна. Треба щоб флеш якимось чином визначав, змінилася змінна чи ні і, якщо змінилася, запускав Movie Clip.
Буду дуже вдячний як за конкретне вирішення завдання, так і за пораду, де знайти. Під рукою обидва томи біблії користувача, але проблема в тому, що я навіть не знаю, в якому розділі шукати.
Заздалегідь дякую і. вибачте ламера :(.
P. S. Flash MX 2004 Pro
Відповіли: 14
буфер = поточне значення поточне значення = завантажується якщо (поточне значення != буфер)
Цитую сам себе: «. вибачте ламера :(.» Т. е. не зрозумів нічого. Такі слова, як буфер і онемацея, знаю, але як втілити все вищеописане в коді — поняття не маю. До речі, я припускав, що доведеться що доведеться мати справу з буфером, так.
млинець, це я так образно змінні назвав :) я ж тобі практично код написав.
zzz = current; current =loadVariable(); if (current != zzz) gotoAndPlay(xxx); або там clip.gotoAndPlay(xxx); >
типу того.. далі жувати?
«Далі жувати?» - ага :). Можливо я й справляю враження просунутого користувача Flash, але насправді це оптичний обман зору. З буфером я не працював ніколи в житті і тим більше не уявляю, як до нього звертатися. Ось про всяк випадок код:
//Викликаємо змінні з текстового файлу: var lvData:LoadVars = new LoadVars(); lvData.load("hosts.txt"); //і показуємо їх захопленому глядачеві: lvData.onLoad = function(bSuccess:Boolean) if (bSuccess) today.text = this.today; alldays.text = this.alldays; > >; //Завіса
А ось результат (чисто для задоволення цікавості): http://www.moiki.biz/get_counter/counte r.swf
для змінної today я зробив ось так:
// Перевіряємо, чи оновилася змінна: this.today = current; current = loadVariable(); //якщо так, то вирушаємо на: if (current != this.today) getURL("http://www.moiki.biz", "_blank"); >
спробуй замість getURL написати ченити типу trace("GOTCHA!");
// Перевіряємо, чи оновилася змінна: this.today = current; current = loadVariable(); //якщо так, то вирушаємо на: if (current! = this.today) trace ("GOTCHA!"); >
Як і передбачалося, нічого не відбувається.
Ну, лише в Аутпуті GOTCHA! показує один раз.
значить все працює, і getURL буде працювати, коли в мережу викладеш
Я спочатку перевіряю все у мережі. На даний момент у мене є такий код:
//Викликаємо змінні з текстового файлу: var lvData:LoadVars = new LoadVars(); lvData.load("hosts.txt"); // Перевіряємо, чи оновилася змінна: this.today =current; current = loadVariable(); //якщо так, то вирушаємо на: if (current! = this.today) getURL ("http://www.batur.ru"); > //і показуємо їх захопленому глядачеві: lvData.onLoad = function(bSuccess:Boolean) if (bSuccess) _today.text = this.today; _alldays.text=this.alldays; > >;
Цей код не працює. Лічильник завантажується, показує змінні, але на url не переходить. Ні при оновленні, ні при зміні змінної: (
для перевірки змінилося значення змінної почитай про watch в хелпі дуже корисна річ
Моє знання англійської близько до знання якоїсь португальської. Говорячи простіше - одно нулю.
Проблема вирішилася. Дякую всім, хто брав участь і особливо Андрію, який допоміг.