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

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

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

Регистрация: Feb 2013
Адрес: Город, которого нет
Сообщений: 586
Отправить сообщение для Кот Баюн с помощью ICQ Отправить сообщение для Кот Баюн с помощью Skype™
По умолчанию Таймер обратного отсчета на Shared Object

Всем доброго времени суток!
Возникла одна трудность.

Видел в Интернете исходники таймеров обратного отсчета, на которых можно засечь N часов-минут-секунд, вроде бы все понятно.
А как можно прикрутить такой таймер к SharedObject, чтобы после закрытия флешки отсчет продолжался?

Возможно для этого надо записать текущую дату-время и дату-время окончания таймера и сверять их при открытии флешки?

Старый 24.10.2014, 21:19
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
что-то вы тут недоформулирвали: если после закрытия отсчет продолжается, то и сравнивать нужно текущее системное время с временем Ч, зачем нужно время закрытия предыдущей флешки ?

Старый 24.10.2014, 23:06
Кот Баюн вне форума Посмотреть профиль Отправить личное сообщение для Кот Баюн Найти все сообщения от Кот Баюн
  № 3  
Ответить с цитированием
Кот Баюн
 
Аватар для Кот Баюн

Регистрация: Feb 2013
Адрес: Город, которого нет
Сообщений: 586
Отправить сообщение для Кот Баюн с помощью ICQ Отправить сообщение для Кот Баюн с помощью Skype™
наверное недоформулировал.
ну короче говоря, примерно так.

я хочу засечь, допустим, шесть часов с какого-то момента, и чтобы после закрытия флешки таймер продолжал работать,

то есть, если открыть флешку через четыре часа, то он показывал бы, что два осталось.


Получается, записать в Shared Object начало и конец отсчета и отследить, идет отсчет или нет.

Старый 24.10.2014, 23:30
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>я хочу засечь, допустим, шесть часов с какого-то момента

когда этот момент наступит, запоминаем его в SO
при следующем старте используем для сравнения с текущим временем

вопрос-то в чем?

Старый 25.10.2014, 11:14
Кот Баюн вне форума Посмотреть профиль Отправить личное сообщение для Кот Баюн Найти все сообщения от Кот Баюн
  № 5  
Ответить с цитированием
Кот Баюн
 
Аватар для Кот Баюн

Регистрация: Feb 2013
Адрес: Город, которого нет
Сообщений: 586
Отправить сообщение для Кот Баюн с помощью ICQ Отправить сообщение для Кот Баюн с помощью Skype™
вопрос в том, что не знаю, как на практике прикрутить код от обычного таймера к SO.
опыта мало в этом.

Старый 27.10.2014, 10:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Кот Баюн Посмотреть сообщение
вопрос в том, что не знаю, как на практике прикрутить код от обычного таймера к SO.
опыта мало в этом.
Код AS1/AS2:
var tf:TextField;
var curTime:Number;
var so:SharedObject;
var totTime:Number=6;
 
 
tf = this.createTextField("tf", 0, 0, 0, 200, 80);
so = SharedObject.getLocal("countdown", "/");
if (so.data.elapsedTime) {
	// процесс уже запущен, стартуем счет
	startCount();
 
 
} else {
	//нет данных, создаем и ждем отмашки на старт (любой клик)
	so.data.elapsedTime = 0;
	tf.text = "кликните где-нибудь для старта";
	this.onMouseDown = startCount;
 
}
 
function startCount() {
	curTime = getTimer();
	this.onEnterFrame = this_onEnterFrame;
	this.onMouseDown = null;
}
 
function this_onEnterFrame() {
	// добавляем время счетчику
	var time:Number = getTimer();
	so.data.elapsedTime += time-curTime;
	curTime = time;
 
	// показываем сколько прошло\осталось
	var d:Date = new Date();
	d.setTime(so.data.elapsedTime);
	tf.text = "истрачено  "+d.getUTCHours()+":"+d.getUTCMinutes()+":"+d.getUTCSeconds();
	d.setTime(totTime*60*60*1e3-so.data.elapsedTime);
	tf.text += "\nосталось     "+d.getUTCHours()+":"+d.getUTCMinutes()+":"+d.getUTCSeconds();
}
Добавлено через 7 минут
упс
только это я почему-то написал для случая, когда счет при закрытии флешки останавливается, а при старте возобновляется снова
если надо, чтоб продолжался, то будет еще проще.., только до меня не доходит практический смысл такого счетчика, поэтому пусть так пока (если что переделать не сложно)

Старый 27.10.2014, 10:29
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 7  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Цитата:
Сообщение от silin Посмотреть сообщение
d.getUTCHours()+":"+d.getUTCMinutes()+":"+d.getUTCSeconds();
Икскьюзми, магистр (с), а использование ЮТС минут-секунд действительно имеет какой-то практический смысл, или это просто решение задачи в общем виде?
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 25.10.2014, 12:01
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 8  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
А что та прикручивать-то? Записать в СО две цифирки - время старта и время длительности отсчета.
При запуске считываем, вычитаем и видим сколько ост.

Код AS1/AS2:
function loadSettings( file, defaults ){
 
	var answer = new Object()
	var newset = SharedObject.getLocal( file )
 
	if ( newset.data.dat != undefined )
	{
		trace(file+" ### Settings Loaded. OK")
		answer = newset.data.dat
	}
	else
	{
		trace(file+" ### No Settings")
		saveSettings( file, defaults )
		answer = defaults
	}
	return answer		
 
}
function saveSettings( file, obj ){
	trace("### Save settings: "+file)
	var saveset = SharedObject.getLocal( file )	
	saveset.data.dat = obj
	saveset.flush()		
 
}
 
var timerData = loadSettings("my_timer", {start:new Date(), finish:new Date()+10000})
По дефолту имеем данные для 10-секундного каунтдауна.

Для нескоькоих таймеров сохраняем не единичный объект, а массив объектов.
http://vk.com/TIMERS
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 25.10.2014, 12:35
Кот Баюн вне форума Посмотреть профиль Отправить личное сообщение для Кот Баюн Найти все сообщения от Кот Баюн
  № 9  
Ответить с цитированием
Кот Баюн
 
Аватар для Кот Баюн

Регистрация: Feb 2013
Адрес: Город, которого нет
Сообщений: 586
Отправить сообщение для Кот Баюн с помощью ICQ Отправить сообщение для Кот Баюн с помощью Skype™
Что-то я не совсем понял, куда они выводятся, цифры-то
Переменная timerData выдает значение [object Object]

Старый 25.10.2014, 19:54
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 10  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
timerData.start
timerData.finish
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

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

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


 


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


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