Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

RadioButton - componente di Flash CS3

This is a discussion on RadioButton - componente di Flash CS3 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Buongiorno a tutti ! Un altro articolo che riguarda la serie dei componenti built-in ( cioè già esistenti ) di ...


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
  #1 (permalink)  
Old 21-09-07, 10:40
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
RadioButton - componente di Flash CS3

Buongiorno a tutti !
Un altro articolo che riguarda la serie dei componenti built-in ( cioè già esistenti ) di Flash CS3.

Dopo aver visto il ComboBox o il DataGrid , questa volta è tempo di dare un' occhita al RadioButton.
Nell' esempio seguente, vedremo come sviluppare una semplice aplicazione che ' interroga ' l' utente.
Potrebbe essere un buon punto di partenza per creare un sondaggio o delle statistiche, oppure semplicemente per implementare delle opzioni in una form registrazione o altro...

Vediamo l' esempio...*

Creo un FLA che salvo con nome ' main.fla '.
Al suo interno trascino un componente RadioButton dal pannello Componenti alla libreria.

Creo la Document Class di main.fla, un file AS che salvo cone nome ' Main.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	import flash.text.TextField;
	import fl.controls.RadioButton;
	import fl.controls.RadioButtonGroup;
	import flash.events.MouseEvent;
	
	public class Main extends MovieClip
	{
		var job:RadioButtonGroup=new RadioButtonGroup('My job');
		var age:RadioButtonGroup=new RadioButtonGroup('My age');
		var sex:RadioButtonGroup=new RadioButtonGroup('My sex');
		
		private var result_txt:TextField;
		
		private var first_step:int=3;
		private var second_step:int=6;
		private var third_step:int=4;
		
		private var job_result:String;
		private var age_result:String;
		private var sex_result:String;
		
		public function Main()
		{
			firstStep();
			secondStep();
			thirdStep();
			createTextResult();
			initResult();
		}
		
		private function firstStep():void
		{
			var field:TextField=new TextField();
			field.text=job.name;
			field.x=30;
			field.y=30;
			addChild(field);
			
			for(var i:int=0;i < first_step;i++)
			{
				var rb:RadioButton=new RadioButton();
				rb.move(field.x,field.y*2+30*i);
				addChild(rb);
				
				rb.group=job;
				
				if(!i)
					rb.label='Developer';
				if(i==1)
				{
					rb.label='Designer';
					rb.selected=true;
				}
				if(i==2)
					rb.label='SEO';
					
				rb.addEventListener(MouseEvent.CLICK,reportResult);
			}
		}
		
		private function secondStep():void
		{
			var field:TextField=new TextField();
			field.text=age.name;
			field.x=150;
			field.y=30;
			addChild(field);
			
			for(var i:int=0;i < second_step;i++)
			{
				var rb:RadioButton=new RadioButton();
				rb.move(field.x,field.y*2+30*i);
				addChild(rb);
				
				rb.group=age;
				
				if(!i)
					rb.label='18-30';
				if(i==1)
					rb.label='30-40';
				if(i==2)
					rb.label='40-50';
				if(i==3)
					rb.label='50-60';
				if(i==4)
					rb.label='60-70';
				if(i==5)
				{
					rb.label='Foot in coffin';
					rb.selected=true;
				}
					
				rb.addEventListener(MouseEvent.CLICK,reportResult);
			}
		}
		
		private function thirdStep():void
		{
			var field:TextField=new TextField();
			field.text=sex.name;
			field.x=270;
			field.y=30;
			addChild(field);
			
			for(var i:int=0;i < third_step;i++)
			{
				var rb:RadioButton=new RadioButton();
				rb.move(field.x,field.y*2+30*i);
				addChild(rb);
				
				rb.group=sex;
				
				if(!i)
					rb.label='male';
				if(i==1)
					rb.label='female';
				if(i==2)
					rb.label='shemale';
				if(i==3)
				{
					rb.label='bOh';
					rb.selected=true;
				}
					
				rb.addEventListener(MouseEvent.CLICK,reportResult);
			}
		}
		
		private function createTextResult():void
		{
			result_txt=new TextField();
			result_txt.width=200;
			result_txt.x=stage.stageWidth-result_txt.width;
			result_txt.y=30;
			result_txt.textColor=0x0066FF;
			addChild(result_txt);
		}
		
		private function reportResult(evt:MouseEvent):void
		{
			switch(evt.target.group)
			{
				case job:
				job_result=evt.target.label;
				break;
				
				case age:
				age_result=evt.target.label;
				break;
				
				case sex:
				sex_result=evt.target.label;
				break;
			}
				
			fixTextResult();
		}
		
		private function initResult():void
		{
			job_result='Designer';
			age_result='Foot in coffin';
			sex_result='bOh';
			
			fixTextResult();
		}
		
		private function fixTextResult():void
		{
			result_txt.text='My chosen:'+'\n'+'\n'+job_result+'\n'+age_result+'\n'+sex_result;
		}
	}
}
Risultato:










Analizziamo il codice

Proprietà

tre RadioButtonGroup per assegnare un gruppo ad ogni RadioButton che istanzierò
var job:RadioButtonGroup=new RadioButtonGroup('My job');
var age:RadioButtonGroup=new RadioButtonGroup('My age');
var sex:RadioButtonGroup=new RadioButtonGroup('My sex');
un campo di testo che visualizzerà le scelte / selezioni
private var result_txt:TextField;
tre variabili numeriche che contengono ciascuna il numero di RadioButton presenti in ogni sezione
private var first_step:int=3;
private var second_step:int=6;
private var third_step:int=4;
tre variabili stringa che conterranno il valore della scelta fatta in ogni sezione
private var job_result:String;
private var age_result:String;
private var sex_result:String;

Funzione Costruttrice
chiamo 5 metodi in successione
firstStep();
secondStep();
thirdStep();
createTextResult();
initResult();

Metodi
firstStep();
creo un campo di testo che visualizzerà il testo del titolo della prima sezione
var field:TextField=new TextField();
gli assegno il testo della proprietà name di job, la prima istanza di RadioButtonGroup
field.text=job.name;
posiziono il campo di testo
field.x=30;
field.y=30;
aggiungo il campo di testo allo stage ( altrimenti non sarebbe visibile )
addChild(field);
creo un ciclo con massima iterazione il valore della variabile ( si chiamerebbe proprietà, dato che siamo all' interno di una classe ) first_step
for(var i:int=0;i < first_step;i++)
{
istanzio un RadioButton ( tanti quanto è il valore di first_step )
var rb:RadioButton=new RadioButton();
lo posiziono
rb.move(field.x,field.y*2+30*i);
lo aggiungo allo stage
addChild(rb);
assegno un gruppo alla proprietà group del radioButton utilizzando l' istanza RadioButtonGroup ( job )
rb.group=job;
in base al valore della ' i ' assegno una etichetta ( label ) al RadioButton
if(!i)
rb.label='Developer';
if(i==1)
{
rb.label='Designer';
rb.selected=true;
}
if(i==2)
rb.label='SEO';
aggiungo un listener in ascolto dell' evento CLICK della classe mouseEvent. Quando il radioButton verrà selezionato/cliccato, verrà chiamato il metodo reportResult()
rb.addEventListener(MouseEvent.CLICK,reportResult) ;
}

secondStep();
stesse cose di firstStep

thirdStep();
stesse cose di firstStep

createTextResult();
creo il campo di testo... diciamo... generale
result_txt=new TextField();
gli assegno una larghezza e lo posiziono
result_txt.width=200;
result_txt.x=stage.stageWidth-result_txt.width;
result_txt.y=30;
gli assegno un colore al testo
result_txt.textColor=0x0066FF;
lo aggiungo allo stage
addChild(result_txt);

reportResult();
questo metodo viene chiamato ogni volta che un RadioButton è cliccato e aggiorna il testo di result_txt.
Controllo il gruppo a cui è assegnato il RadioButton cliccato tramite uno switch e in base appunto al gruppo di appartenza del RadioButton, assegno un valore ad una delle tre variabili stringa ( job_result, age_result, sex_result )
switch(evt.target.group)
{
case job:
job_result=evt.target.label;
break;

case age:
age_result=evt.target.label;
break;

case sex:
sex_result=evt.target.label;
break;
}
chiamo il metodo fixTextResult
fixTextResult();

fixTextResult();
questo metodo assegna il testo al campo di testo result_txt ogni volta che l' utente clicca un RadioButton. Viene assegnato in base ai valori delle tre proprietà String: job_result, age_result, sex_result
result_txt.text='My chosen:'+'\n'+'\n'+job_result+'\n'+age_result+'\n' +sex_result;

Alla prossima !
__________________

 


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
SimpleGallery - componente per Flash CS3 Flep Componenti di FlepStudio 35 11-11-08 19:07
RadioButton component of Flash CS3 Flep Tutorials 1 05-08-08 09:52
JellyMenu - componente per Flash CS3 Flep Componenti di FlepStudio 4 25-04-08 14:54
NumericStepper - componente di Flash CS3 Flep Articoli e tutorials 0 29-10-07 06:43
Componente ColorPicker Flash CS3 Flep Articoli e tutorials 0 19-09-07 15:19


All times are GMT. The time now is 10:40.


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