Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Componente ProgressBar di Flash CS3

This is a discussion on Componente ProgressBar di Flash CS3 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Ecco un articolo che potrebbe essere una variante di questi articoli: Caricare un SWF esterno con Flash CS3 Preloader con ...


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

Register Blogs FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 20-09-07, 13:42
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,350
Blog Entries: 1
Rep Power: 6
Flep is on a distinguished road
Componente ProgressBar di Flash CS3

Ecco un articolo che potrebbe essere una variante di questi articoli:

Caricare un SWF esterno con Flash CS3

Preloader con Flash CS3

In questo caso utilizzo il componente ProgressBar per monitorare lo stato di caricamento di un SWF esterno.
Inoltre utilizzo il componente UILoader per caricare l' SWF invece della classe Loader ( utilizzata in molti esempi di questo sito ).
Aggiungo un componente Label al posto di un campo di testo dinamico.

Vediamo come funziona...

Creo un FLA, che salvo con nome ' bar.fla ' , al cui interno trascino sullo stage un componente ProgressBar e gli assegno nome istanza ' bar_pb '.
Creo la Document Class, un file AS che salvo con nome ' Main.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	import fl.containers.UILoader;
	import fl.controls.Label;
	import flash.text.TextFieldAutoSize;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	
	public class Main extends MovieClip
	{
		private var UI_loader:UILoader
		
		private var etichetta:Label;
		
		private var url:String;
		
		public function Main()
		{
			init();
		}
		
		private function init():void
		{
			url='http://www.flepstudio.org/swf/my_swf.swf?cachebuster='+new Date().getTime();
			
			UI_loader=new UILoader();
			UI_loader.autoLoad=false;
			UI_loader.source=url;
			UI_loader.move(stage.stageWidth/2,stage.stageHeight/2);
			UI_loader.scaleContent=false;
			UI_loader.load();
			
			bar_pb.source=UI_loader;
			bar_pb.move(stage.stageWidth/2-bar_pb.width/2,stage.stageHeight/2);
			bar_pb.addEventListener(ProgressEvent.PROGRESS,progresso);
			bar_pb.addEventListener(Event.COMPLETE,completato);
			
			etichetta=new Label();
			etichetta.autoSize=TextFieldAutoSize.LEFT;
			etichetta.move(bar_pb.x,bar_pb.y+bar_pb.height);
			addChild(etichetta);
		}
		
		private function progresso(e:ProgressEvent):void 
		{
			etichetta.text=int(e.currentTarget.percentComplete)+'%';
		}
		
		private function completato(e:Event):void 
		{
			bar_pb.removeEventListener(ProgressEvent.PROGRESS,progresso);
			bar_pb.removeEventListener(Event.COMPLETE,completato);
			
			removeChild(bar_pb);
			removeChild(etichetta);
			addChild(UI_loader);
			
			UI_loader.move(-100,-100);
		}
	}
}










Analizziamo il codice

Proprietà

un' istanza del componente UILoader
private var UI_loader:UILoader
un' istanza del componente Label
private var etichetta:Label;
una variabile di tipo stringa che conterrà l' url dell' SWF da caricare
private var url:String;

Metodi
init();
assegno l' url dell' SWF esterno alla variabile url
url='http://www.flepstudio.org/swf/my_swf.swf?cachebuster='+new Date().getTime();
istanzio il componente UILoader
UI_loader=new UILoader();
imposto la sua proprietà autoLoad a false
UI_loader.autoLoad=false;
assegno alla sua proprietà source, il valore della variabile url
UI_loader.source=url;
posiziono il componente
UI_loader.move(stage.stageWidth/2,stage.stageHeight/2);
imposto la sua proprietà scaleContent a false
UI_loader.scaleContent=false;
faccio partire il caricamento dell' SWF esterno
UI_loader.load();
dico alla ProgressBar che la sua proprietà source è l' istanza di UILoader ( UI_loader )
bar_pb.source=UI_loader;
posizione la ProgressBar
bar_pb.move(stage.stageWidth/2-bar_pb.width/2,stage.stageHeight/2);
aggiungo un listener alla ProgressBar in ascolto dell' evento ProgressEvent.PROGRESS che, una volta avvenuto l' evento, chiamerà lafunzione progresso()
bar_pb.addEventListener(ProgressEvent.PROGRESS,pro gresso);
aggiungo un listener alla ProgressBar in ascolto dell' evento Event.COMPLETE che, una volta avvenuto l' evento, chiamerà lafunzione completato()
bar_pb.addEventListener(Event.COMPLETE,completato) ;
istanzio il componente Label
etichetta=new Label();
gli assegno un autosize ( in questo caso utilizzando il metodo statico LEFT della classe TextFieldAutoSize )
etichetta.autoSize=TextFieldAutoSize.LEFT;
posiziono la Label
etichetta.move(bar_pb.x,bar_pb.y+bar_pb.height);
la aggiungo al DisplayObject ( altrimenti non sarebbe visibile )
addChild(etichetta);

progresso();
assegno il testo alcomponente Label. In questo caso assegno la proprietà percentComplete della ProgressBar ( che è e.currentTarget, cioè chi ha dispacciato l' evento )
etichetta.text=int(e.currentTarget.percentComplete )+'%';

completato();
rimuovo i listeners
bar_pb.removeEventListener(ProgressEvent.PROGRESS, progresso);
bar_pb.removeEventListener(Event.COMPLETE,completa to);
rimuovo i componenti ProgressBar e Label
removeChild(bar_pb);
removeChild(etichetta);
aggiungo al DisplayObject l'istanza di UILoader ( UI_loader che adesso contiene l' SWF esterno che è diventata una MovieClip )
addChild(UI_loader);
posiziono l' istanza di UILoader
UI_loader.move(-100,-100);

Allego i files sorgente:
Attached Files
File Type: zip ProgressBar.zip (548.3 KB, 13 views)

__________________

 


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 !

Last edited by Flep; 04-06-08 at 22:55.
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
SimpleGallery - componente per Flash CS3 Flep Componenti di FlepStudio 34 14-01-08 12:14
NumericStepper - componente di Flash CS3 Flep Articoli e tutorials 0 29-10-07 05:43
ProgressBar Component of Flash CS3 Flep Tutorials 0 27-09-07 08:15
RadioButton - componente di Flash CS3 Flep Articoli e tutorials 0 21-09-07 09:40
Componente Slider di Flash CS3 Flep Articoli e tutorials 0 20-09-07 12:01


All times are GMT. The time now is 23:33.


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


FlepStudio
by Filippo Lughi
P.IVA 03605860406