Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.12.2016, 19:21
TEI вне форума Посмотреть профиль Отправить личное сообщение для TEI Найти все сообщения от TEI
  № 1  
Ответить с цитированием
TEI
 
Аватар для TEI

Регистрация: Nov 2010
Сообщений: 111
По умолчанию Проверка времени

Вечер добрый,

Мне необходимо постоянно получать время на устройстве пользователя, для создания отсчета таймеров.

Код AS3:
var _date:Date;
_date = new Date();
_date.getTime();
Время фиксируется при создании объекта. Поэтому приходится для каждой проверке создавать объект снова и снова. Как оптимизировать данную функцию?

При создании таймера я сохраню текущее время таким же способом

Код AS3:
var mysave:SharedObject = SharedObject.getLocal("SharedObject");
mysave.data.myTime=_date.getTime();

Старый 22.12.2016, 20:57
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Для чего это нужно оптимизировать? Если тебе нужно только лишь запомнить время создания объекта, вряд ли это будет тонким местом в программе
__________________
Ко мне можно и нужно обращаться на ты)

Старый 22.12.2016, 21:03
TEI вне форума Посмотреть профиль Отправить личное сообщение для TEI Найти все сообщения от TEI
  № 3  
Ответить с цитированием
TEI
 
Аватар для TEI

Регистрация: Nov 2010
Сообщений: 111
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Для чего это нужно оптимизировать? Если тебе нужно только лишь запомнить время создания объекта, вряд ли это будет тонким местом в программе
Запомнить, да. Суть вопроса в постоянной проверке текущего времени на устройстве.
Не может ли постоянное создание нового объекта Date вызвать утечку памяти?

Код AS3:
_date = new Date();
_date.getTime();

Старый 22.12.2016, 21:06
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,282
если дата нужна только для замера промежутков времени можно попробовать
getTimer
правда не уверен что он там внутри не создает ничего.

Старый 22.12.2016, 21:09
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 5  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Есть функция getTimer() которая возвращает время с момента запуска. Т.е. дату можно запросить один раз при запуске, запомнить значение getTimer() на тот момент и потом прибавлять к сохраненной дате разницу между первым запросом и текущим.

Старый 22.12.2016, 21:37
TEI вне форума Посмотреть профиль Отправить личное сообщение для TEI Найти все сообщения от TEI
  № 6  
Ответить с цитированием
TEI
 
Аватар для TEI

Регистрация: Nov 2010
Сообщений: 111
Мне нужно время не с момента запуска игры, а глобальное время. 22.12.2016 21:33
Чтобы отмерять в мобильной игрушке когда игрок запустил постройку здания(например), на завершение которого нужно 10 часов. И соответственно отображать разницу. Я просто обнаружил, что текущее время инициализируется лишь создании объекта, а не каждый раз когда я к нему обращуюсь

Старый 23.12.2016, 09:52
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 7  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Цитата:
Сообщение от TEI Посмотреть сообщение
Мне нужно время не с момента запуска игры, а глобальное время. 22.12.2016 21:33
Вам уже кучу постов с вариантами решения через getTimer() написали. В документации по Date() от Adobe так же рекомендуют использование getTimer()
Цитата:
Чтобы вычислить относительное или прошедшее время, воспользуйтесь методом getTimer() из пакета flash.utils.
Если этого мало для вашей задачи, оставьте как есть. Единственное, рекомендую принудительно удалять созданный экземпляр Date.

Старый 22.12.2016, 21:47
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 8  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,282
создавай new Date раз в секунду(по таймеру) и не парься

Старый 22.12.2016, 23:03
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 9  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
TEI,
Партизан дело говорит.
__________________
Дети не должны знать о своих родителях

Старый 22.12.2016, 23:50
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 10  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,282
насколько я понял интервал может быть растянут на несколько сессий в этом случае действительно использовать getTimer проблематично.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.