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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.09.2012, 09:43
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 11  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ошибка в том, что Вы берете местное время в форматтере, а надо брать универсальное.
Код AS3:
private function formatDate(d:Date):String {			
	return f(d.getUTCHours()) + ":" + f(d.getUTCMinutes()) + ":" + f(d.getUTCSeconds());			
}
Как-то так. У меня с нуля показывает, Ваш последний код показывал с новосибирским оффсетом — с 06:00:00.
Код AS3:
package ru.nsab.player {
	import flash.display.MovieClip;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
 
	public class Clock extends MovieClip {
 
		private var _timer:Timer = new Timer(1000);
		private var _start:Date;
		private var _datePassed:Date = new Date();
 
		public function Clock() {}		
 
		public function start():void {
			_start = new Date();
			_timer.addEventListener(TimerEvent.TIMER, onTimer);
			_timer.start();
			updateClock();
		}
 
		private function onTimer(event:TimerEvent):void {
			updateClock();
		}
 
		private function f(n:Number):String {
			return n<10 ? "0"+n : n.toString();				
		}
 
		private function formatDate(d:Date):String {			
			return f(d.getUTCHours()) + ":" + f(d.getUTCMinutes()) + ":" + f(d.getUTCSeconds());			
		}
 
		private function updateClock():void {
			var dateNow:Date = new Date();
			var timePassed:Number = dateNow.getTime() - _start.getTime();
			_datePassed.setTime(timePassed);
			this["timeRunning"].text = formatDate(_datePassed);
		}
	}
}
А, ну и запуск:
Код AS3:
var clock:Clock = new Clock();
this.addChild(clock);
clock.x = clock.y = 100;
clock.start();
И да, учтите что в полночь карета превращается в тыкву.
Потому что это не таймер, а часы, на которых установили 00:00:00 и запустили. Показывать они все-равно будут время, а не количество часов, минут и секунд. То есть когда количество часов станет больше 23, поле "часы" начнет показывать с нуля, а не 24..25..26.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 27.09.2012 в 09:55.
Старый 21.10.2012, 16:04
Keyles вне форума Посмотреть профиль Отправить личное сообщение для Keyles Найти все сообщения от Keyles
  № 12  
Ответить с цитированием
Keyles
 
Аватар для Keyles

Регистрация: May 2011
Сообщений: 39
Ошибка в том, что Вы берете местное время в форматтере, а надо брать универсальное.
Поменяла, все отлично стало)

начнет показывать с нуля, а не 24..25..26.
это да. не думаю что его будут запускать на 23 часа. спасибо

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

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

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


 


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


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