Здравейте, започнах със задача, намерете решения
Попаднах на проблем, но не мога да намеря решение: Има светкавичен брояч. Предполага се, че брои посетителите на сайта. Всъщност прави това, като изтегля променлива от текстов файл и я показва като динамичен текст. За да става обновяването на всеки 5 секунди, а не само при презареждане на страницата, са направени 5 кадъра с продължителност 1 секунда. всеки. В първия кадър, кодът, който изтегля променливата. Тъй като .swf е зациклил, на всеки 5 секунди кодът се изтегля отново и се показва. Методът, разбира се, е дървен, но всичко работи добре и съм доволен.
И сега самата задача: Наистина трябва да пусна конкретен филмов клип, когато променлива се промени. Но самата променлива се променя много по-рядко, отколкото .swf я актуализира. Тоест не можете да възпроизвеждате филмов клип след всяка актуализация. Необходимо е флашът по някакъв начин да определи дали променливата се е променила или не и ако се е променила, да стартира филмовия клип.
Ще съм много благодарен както за конкретно решение на проблема, така и за съвет къде да го намеря. И двата тома от библията на потребителя са ми под ръка, но проблемът е, че дори не знам кой раздел да погледна.
Благодаря предварително и. съжалявам, lamer :(.
P.S. Flash MX 2004 Pro
Отговорено: 14
буфер = текуща стойност текуща стойност = заредено ако (текуща стойност!= буфер)
Цитирам себе си: „. съжалявам, lamer :(.” Тоест, не разбрах нищо. Знам думи като буфер и onemacea, но нямам представа как да внедря всичко по-горе в код. Между другото, предположих, че ще трябва да се справя с буфера, да.
по дяволите, извиках променливи толкова образно :) На практика написах кода за вас ..
zz = ток; текущо=loadVariable(); ако (текущо != 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
за днешната променлива направих така:
//Проверете дали променливата е актуализирана: this.today = current; текущ = loadVariable(); //Ако е така, отидете на: if (текущо != this.today) getURL("http://www.moiki.biz", "_blank"); >
опитайте вместо getURL да напишете chenit като trace("GOTCHA!");
//Проверете дали променливата е актуализирана: this.today = current; текущ = loadVariable(); //ако да, тогава отидете на: if (current != this.today) trace("GOTCHA!"); >
Както се очаква, нищо не се случва.
Е, само в GOTCHA Output! показва веднъж.
така че всичко работи и getURL ще работи, когато го поставите в мрежата
Първоначално проверявам всичко в мрежата. В момента имам този код:
//Извикване на променливи от текстов файл: var lvData:LoadVars = new LoadVars(); lvData.load("hosts.txt"); //Проверете дали променливата е актуализирана: this.today =текущ; текущ = loadVariable(); //ако да, тогава отидете на: if (текущ != this.today) getURL("http://www.batur.ru"); > //и ги покажете на ентусиазиран зрител: lvData.onLoad = function(bSuccess:Boolean) if (bSuccess) _today.text = this.today; _alldays.text = this.alldays; > >;
Този код не работи. Броячът се зарежда, показва променливи, но не отива към URL адреса. Не при актуализация, не при промяна на променлива :(
за да проверите дали стойността на дадена променлива се е променила, прочетете за watch в помощта, много полезно нещо
Знанията ми по английски се доближават до познанията на някой португалски. Казано по-просто, то е равно на нула.
Проблема решен. Благодаря на всички, които се включиха и най-вече на Андрей, който помогна.