Как я сделал смену фона сцены "Погода"
Здесь я напишу, как сделал я, для того чтобы менялся фон при смене сезона на сцене "Погода".
Для начала, нам нужно установить дополнительно из маркета дополнений модуль "Яндекс погода". К сожалению, openweather не передает информацию о сезоне, а яндекс передает. Настраиваем город, сохраняем, получаем данные.
Теперь, я создал у себя свойство в обьекте ThisComputer под названием season. Данные о сезоне хранятся в свойстве season обьекта yw_mycity. Дальше, я делаю глупость, но у меня нормально только так заработало... Раньше я напрямую обращался к свойству season от яндекса. Но почему-то часто пропадал фон, т.е. он просто не видел, какой нужен фон... Сейчас я принудительно переношу значение в свойство season обьекта ThisComputer и с ним уже работаю. В такой комбинации все работает нормально.
Итак, создаём сценарий, такого содержания:
//variable $season
$season = getGlobal('yw_mycity.season');
setGlobal('ThisComputer.season',$season);
И запускаем его в методе onNewHour в обьекте Timer
runscript('название вашего скрипта');
Либо можно сразу сам скрипт прописать в этом методе. Но дабы не нагромождать в будущем этот метод, я просто через него запускаю сценарий
Теперь раз в час данные из Яндекс погоды будут переноситься в обьект ThisComputer.
Дальше, нам нужно найти картинки, которые соответствуют по вашему мнению и настроению сезону года и назвать их соответственно spring.jpg - это весна, summer.jpg - это лето, autumn.jpg - это осень, winter,jpg - это зима. Расширение может быть не обязательно jpg, но обязательно все 4 картинки с одинаковым расширением.
Когда мы это сделали, мы это кладем в папку с фонами сцен. У меня это
/cms/scenes/backgrounds
Дальше в сцене погоды мы просто прописываем в графе "Фоновое изображение"
/cms/scenes/backgrounds/%ThisComputer.season%.jpg
Всё. После выполнения метода Timer.onNewHour, на сцене должна появиться картинка, соответствующая текущему сезону
P.S.: Это мои картинки сезона, кому интересно
Санкт-Петербург, Россия
На форуме: Valphil