Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Creare un orologio con Flash CS3 - parte seconda

This is a discussion on Creare un orologio con Flash CS3 - parte seconda within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Ecco la seconda parte di questo tutorial. Diciamo pure che il grosso è stato fatto nell' articolo precedente: la parte ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  2 links from elsewhere to this Post. Click to view. #1 (permalink)  
Old 20-09-07, 16:21
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Creare un orologio con Flash CS3 - parte seconda

Ecco la seconda parte di questo tutorial.
Diciamo pure che il grosso è stato fatto nell' articolo precedente: la parte prima di come creare un orologio e abbiamo visto come formattare il tempo universale che lo script PHP ci passa.
Oggi vedremo come fare per incrementare il tempo che prendiamo dal server in modo da ottenere un orologio digitale con la data del giorno a tutti gli effetti.

Dunque, cosa vi dice la logica se noi, una volta recuperata la data dal server, la incrementiamo di una unità ( dato che è in secondi ) al secondo utilizzando la Classe Timer ?

Apriamo il file Orario.as e alla riga 63, al posto di chiamare la funzione initTime una volta sola, la chiamiamo utilizzando un Timer.
Quindi, rinominiamo la chiamata initTime con callInitTime().

A questo punto creo una nuova funzione che si chiama appunto callInitTime, in questo modo:
Code:
private function callInitTime():void
{
	var timer:Timer=new Timer(1000,0);
	timer.addEventListener(TimerEvent.TIMER,initTime);
	timer.start();
}
adesso stiamo chiamando la funzione initTime una volta al secondo utilizzando un Timer.
Ci rimane solo da incrementare il valore della variabile serverTime di una unità ogni volta.
In questo modo:
Code:
serverTime++;
Per cui ogni volta il valore di serverTime ( che abbiamo recuperato dal server ) sarà incrementato di un secondo, proprio ciò che avviene in un orologio.
La nuova classe Orario.as diventerà così:
Code:
package
{
	import flash.display.MovieClip;
	import flash.text.TextField;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLVariables;
	import flash.net.navigateToURL;
	import flash.utils.Timer;
	import flash.events.*;
	
	public class Orario2 extends MovieClip
	{
		private var days_array:Array;
		private var months_array:Array;
		
		private var serverTime:Number;
		
		public function Orario2()
		{
			init();
		}
		
		private function init():void
		{
			days_array=new Array('Domenica','Lunedi','Martedi','Mercoledi','Giovedi',
			'Venerdi','Sabato');
			months_array=new Array('Gennaio','Febbraio','Marzo','Aprile','Maggio',
			'Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre');
			
			callServer();
		}
		
		private function callServer():void
		{
			var richiesta:URLRequest=new URLRequest();
			richiesta.url='http://www.flepstudio.org/gettime.php';
			var loader:URLLoader=new URLLoader();
			addListeners(loader);
			try 
			{
				loader.load(richiesta);
			} 
			catch (error:Error) 
			{
				trace('Unable to load requested document.');
			}
		}
		
		private function addListeners(d:IEventDispatcher):void
		{
			d.addEventListener(Event.COMPLETE,completato);
		}
		
		private function completato(e:Event):void
		{
			var loader:URLLoader=URLLoader(e.target);
			var vars:URLVariables=new URLVariables(loader.data);
			serverTime=vars.time;
			
			callInitTime();
		}
		
		private function callInitTime():void
		{
			var timer:Timer=new Timer(1000,0);
			timer.addEventListener(TimerEvent.TIMER,initTime);
			timer.start();
		}
		
		private function initTime(t:TimerEvent):void
		{
			var server_milliseconds:Number=serverTime*1000;
			
			var real_date:Date=new Date(server_milliseconds);
			
			var hours:int=real_date.getHours();
			var minutes:int=real_date.getMinutes();
			var seconds:int=real_date.getSeconds();
			var day_of_the_week:String=days_array[real_date.getDay()];
			var day:int=real_date.getDate();
			var month:String=months_array[real_date.getMonth()];
			var year:int=real_date.getFullYear();
			
			var hours_str:String=hours.toString();
			if(hours<10)
				hours_str='0'+hours.toString();
			var minutes_str:String=minutes.toString();
			if(minutes<10)
				minutes_str='0'+minutes.toString();
			var seconds_str:String=seconds.toString();
			if(seconds<10)
				seconds_str='0'+seconds.toString();
			
			format_txt.text=hours_str+':'+minutes_str+':'+seconds_str+'\n'+
			day_of_the_week+' '+day+' '+month+'\n'+year;
			
			serverTime++;
		}
	}
}
Ed ecco il risultato:










Stay tuned !
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Orologio analogico Flep Utilità di FlepStudio 11 01-08-08 22:36
Flex gestisce la parte di back-end e Flash visualizza i dati Flep FLEX builder 3 0 20-04-08 09:56
orologio in as3 edo_flash Actionscript 3.0 base 3 09-11-07 12:33
Come creare un orologio con Flash CS3 - prima parte Flep Articoli e tutorials 0 20-09-07 16:14
Orologio analogico Flash CS3 + PHP gheeeko AIUTO utilità free 4 24-08-07 14:27


All times are GMT. The time now is 12:27.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406