![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Sep 2013
Сообщений: 10
|
Подскажите, как сделать чтобы Объект добавился на сцену при наступлении определенный даты?
var BeregPrav: Mc = new Mc(); addChild(BeregPrav); BeregPrav.x = 600; BeregPrav.y = 400; BeregPrav.visible = false; function myFuncBRG(){ BeregPrav.visible = true; } setInterval(myFuncBRG,10000); Заранее спасибо! |
|
|||||
|
Нужно сравнить текущую дату и дату конечную.
Текущую дату на компьютере пользователя можно получить так: Конечную дату можно получить так: var time:Number = 1212121212; // Какая-то дата, в ввиде числа миллисекунд, прошедших с 1970г. var finishDate:Date = new Date(time); // Если передается один аргумент с типом данных Number, объекту Date присваивается временное значение, исходя из количества миллисекунд, прошедших с 0:00:000 1 января 1970 года (среднее время по Гринвичу) и указанных в этом единственном аргументе. И конечно нужно почитать документацию по классу дат.
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Регистрация: Sep 2013
Сообщений: 10
|
Спасибо большое! Все сделал, работает, правда с миллисекундами много мороки переделал на дату,
но клип добавляется только если запускаю ролик с финиш временем finishDate.time изначально меньшим, чем currentDate.time, если же необходимое время наступает во время проигрывания ролика, то клип не добавляется. Не знаете в чем может быть причина? И еще загадка, но месяц в new Date(currentDate.fullYear,3,3,11); почему то нужно ставить на один меньше, хотя на компьютере дата верная. Ну это мелочь. |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
при работе с датами, всегда работайте с миллисекундами, а потом их преобразуйте в даты, так как при передачи экземпляра Date между классами, передается ссылка, а не копия. Потом не найдете концов.
|
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
месяца в Date начинаются с 0, 0 = январь, 1 = февраль,
finishDate должна устанавливаться 1 раз при запуске флешки, а потом периодически должна вызываться функция для проверки текущей даты, и финишной, в вашем коде никакой функции нет, следовательно, это условие выполнится 1 раз при запуске, и так как вы установили finishDate меньше текущего , то это условие будет true. |
|
|||||
|
Регистрация: Sep 2013
Сообщений: 10
|
Еще раз огромное спасибо!
Немного переписал, все работает!)
|
|
|||||
|
Регистрация: Sep 2013
Сообщений: 10
|
У меня небольшой вопрос по данному коду.
Получается что Объект при наступлении Даты добавляется каждую секунду. Особенно заметно когда он имеет движение. Можно ли сделать так, чтобы он при наступлении Даты Объект добавился только один раз и больше не добавлялся? |
|
|||||
|
Регистрация: Jun 2013
Сообщений: 133
|
Можно. Нужно вызвать:
var yourDate = new Date(2014,3,3,14,48); var yourDateMsec = yourDate.getTime(); function F_count() { var nowDate = new Date(); var nowDateMsec = nowDate.getTime(); var msec = yourDateMsec - nowDateMsec; if (msec<=0) { // Добавить клип clearInterval(interval); } else { // Не добавить клип } } var interval = setInterval(F_count,1000); F_count(); |
|
|||||
|
Регистрация: Sep 2013
Сообщений: 10
|
Спасибо! Не с первого раза правда, но получилось)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|