![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 92
|
Всем доброго времени суток.
Снова, традиционно ламерский вопрос: Есть задача, сделать смену картинок в ролике в зависимости от времени суток (день/ночь) Желательно чтоб юзер сам задавал часы смены картинок. Есть текстовый файл vars.txt следующего содержания: Далее загружаем его, по окончаню загрузки создаем две переменные dh и nh var lv:LoadVars = new LoadVars(); lv.load("vars.txt"); lv.onLoad = function() { dh=lv.dayhour nh=lv.nighthour }; Далее пытаемся сравнивать с ними текущее время, и по результату сравнения задавать картинку для функции собственно загрузки картинки, её ресайза... Собственно вопрос: Почему в таком вот варианте, цифра 20 опознается как 0? myhour = new Date(); newhours = myhour.getHours(); if(newhours>=dh&&newhours<=nh){; newpicture="day.jpg"; }else{; newpicture="night.jpg"; }; myhour = new Date(); newhours = myhour.getHours(); if(newhours>=8&&newhours<=20){; newpicture="day.jpg"; }else{; newpicture="night.jpg"; }; Я снова не понимаю какую то малость ![]() В хелпе все примеры со строковыми переменными, поиск по форуму тоже выдает как правило вопросы или про URL в качестве параметров в тексте, или снова строки. Что не так с цифрами то? |
|
|||||
|
ветеран форума
|
parseInt/parseFloat преобразуют строку в число:
например так:
__________________
4am is time to rock |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 92
|
Спасибо, попробовал.
НО не помогло. Ночь начинается не после 20 а после 0 по прежнему ![]() |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
А почему вы решили, что после нуля? И выложите исходник посмотреть
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 92
|
Прошу прощения, ступил вчера ночью...
С применением parseInt действительно всё работает правильно. НО, все равно интересно: Почему без parseInt, при сравнении, цифра 8 тем не менее, отрабатывается правильно, а цифра 20 упорно не хочет... Исходник решил таки выложить, может кто то ещё заинтересуется. Kuruki как я решил что ночь начинается именно с 00-00, так очень просто, запускаю флэшку и перевожу системные часы. В 21-00 ещё не ночь (хотя уже должна бы), в 22 и в 23 тоже... а вот в 00, переключается. И второй вопрос: Можно ли файл с переменными сделать по типу ini файла, чтоб каждая переменная начиналась со своей строки. Насколько я знаю, при загрузке из текстового файла, в нем не допускаются пробелы и переносы строки между переменными... Что ещё (я имею ввиду именно формат файла) можно использовать для хранения переменных снаружи, чтоб он был поудобнее для пользователей. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
На момент вызова
переменные dh и nh равны значению undefined, которое преобразуется в нуль при сравнении. Почему undefined? Потому что событие onLoad объекта LoadVars еще не наступило на момент вызова. А когда вы положили все это на onEnterFrame первые несколько раз было undefined, а потом файл с переменными загружался и значения брались уже от туда... Цитата:
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 92
|
Kuruki
поспорю насчет undefined. Я всё понимаю про то что файл грузится не мгновенно. НО! Я запускаю флэшку, и через минуту (ну он уж точно загрузился) я начинаю играть временем в системе. И происходит то, о что я спотыкался. Ночь наступает только в 0 часов. Кстати я сделал переменные на разных строках. Всё работает. Важно лишь чтоб было так: |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Да, действительно после нуля...
Возможно без parseInt не dh преобразовывается в число, а newhours в строку и получается белиберда... |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 92
|
Вобщем то я тоже так понял что он либо интерпретирует так, как ему заблагорассудится, либо в числе 20, он воспринимает только последнюю цифру.
Надо попробовать написать 21, не станет ли он воспринимать её как 1. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|