Просмотр полной версии : flash refresh
Привет! Столкнулся с маленькой проблемкой.
Задача: сделать аналоговые часы, чтобы в интервале с 8 утра до 17 вечера у них появлялась обводка, а в остальное время отсутсвовала.
Всё сделал, но когда смотришь в онлайне, после 17 обводка сама не пропадает, обязательно нужно сделать рефреш страницы.
Как можно решить эту проблему?
Заранее спасибо
CrazyFlasher
15.10.2007, 16:27
ну потому что у вас видимо идёт проверка на "обводку" только когда часы загрузились. А надо поставить проверку на каждуюу минуту к примеру
ну потому что у вас видимо идёт проверка на "обводку" только когда часы загрузились. А надо поставить проверку на каждуюу минуту к примеру
во во, так и надо!
mydate = new Date();
hours = mydate.getUTCHours()+3;
if (int (hours)>8 and (hours)<17) {
bg1._alpha = 100;
} else {
bg1._alpha = 0;
}
как это здесь реализовать?
CrazyFlasher
15.10.2007, 16:47
засунуть всё это в функцию и вызывать раз в минуту с помощью
setInterval(this, "myFunction", 60000);
сделал так - не работает :(
mydate = new Date();
hours = mydate.getUTCHours()+3;
obj = new Object();
obj.interval = function() {
if (int (hours)>8 and (hours)<15) {
bg1._alpha = 100;
} else {
bg1._alpha = 0;
}
}
setInterval( obj, "interval", 100 );
alexcon314
15.10.2007, 17:22
mydate = new Date();
hours = mydate.getUTCHours()+3;
function interval () {
if (hours>=8 and hours<=15) {
bg1._alpha = 100;
} else {
bg1._alpha = 0;
}
}
setInterval( interval,60000 );
CrazyFlasher
15.10.2007, 17:23
mydate = new Date();
function checkTime() : Void {
hours = mydate.getUTCHours()+3;
if (int (hours)>8 and (hours)<15) {
bg1._alpha = 100;
} else {
bg1._alpha = 0;
}
}
setInterval( checkTime, 60000);
2 alexcon314: mydate.getUTCHours()+3 надо тоже заново брать
alexcon314
15.10.2007, 17:27
и то верно..
не работает почему-то.
проверяет время только один раз после загрузки (через 1 минуту если 60000 и через одну секунду если 1000)
и всё
CrazyFlasher
15.10.2007, 18:27
запихни mydate = new Date(); тоже в функцию
Так и делаю, старик! Вот код
mydate = new Date();
function checkTime() : Void {
hours = mydate.getUTCHours()+3;
if (int (hours)>8 and (hours)<16) {
bg1._alpha = 100;
} else {
bg1._alpha = 0;
}
}
setInterval( checkTime, 1000);
CrazyFlasher
15.10.2007, 18:58
всё работает правильно...я не понимаю, что тут не так? если вы хотите проверка и при загрузке сразу прошла - вызовите эту функцию в начале тоже
mydate = new Date();
function checkTime() : Void {
hours = mydate.getUTCHours()+3;
if (int (hours)>8 and (hours)<16) {
bg1._alpha = 100;
} else {
bg1._alpha = 0;
}
}
checkTime()
setInterval( checkTime, 60000);
ну сама рамка не пропадает, только при рефреше
посмотрите пожалуйста файл в аттаче
Нафига каждую секунду проверять то, что меняется раз в час? Кстати, оно вообще не меняется, потому что
mydate = new Date();
у вас стоит вне функции.
Или вы думаете, что с сотого раза mydate изменится? ))
CrazyFlasher
15.10.2007, 19:34
Нафига каждую секунду проверять то, что меняется раз в час? Кстати, оно вообще не меняется, потому что
mydate = new Date();
у вас стоит вне функции.
Или вы думаете, что с сотого раза mydate изменится? ))
эммм...помоему достаточно один раз создать объект класса Date
эммм...помоему достаточно один раз создать объект класса Date
да-да.
mydate = new Date();
function checkTime() : Void {
trace( mydate.getSeconds() );
}
checkTime()
setInterval( checkTime, 1000);
Теперь trace каждую секунду выводит одно и тоже время (секунду, на которой был включен просмотр) и оно не меняется
mydate = new Date();
function checkTime() : Void {
trace( mydate.getSeconds() );
hours = mydate.getUTCHours()+3;
if (int (hours)>8 and (hours)<12) {
bg1._alpha = 100;
} else {
bg1._alpha = 0;
}
}
checkTime()
setInterval( checkTime, 1000);
сделал второй фрейм и пославил на него gotoAndPlay(1);
всё бль заработало. всем спасибо :O)
А с чего оно должно меняться? Вы дату один раз создали, и потом у нее спрашиваете одно и то же.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.