Buon Lunedì a tutti !
Oggi vorrei proseguire con la serie di tutorials che spiegano come
usare i componenti di Flash CS3, quindi presento il NumericStepper.
Di solito questo componente è utilizzato in applicazioni che utilizzano mole di dati numerici oppure è utile anche nello sviluppo di forms invio dati.
In questo tutorial lo utilizzerò applicato ad una MovieClip utilizzando
Actionscript 3.0 .
Creo un FLA che salvo con nome ' main.fla ' e al suo interno ho una MovieClip di forma quadrata con nome istanza clip_mc.
Creo la Document Class, un file AS che salvo con nome ' Main.as ', implementata in questo modo:
Code:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import fl.controls.NumericStepper;
public class Main extends MovieClip
{
private var num_x:NumericStepper;
private var num_y:NumericStepper;
private var num_w:NumericStepper;
private var num_h:NumericStepper;
public function Main()
{
init();
initSteppers();
}
private function init():void
{
stage.frameRate=31;
}
private function initSteppers():void
{
num_x=new NumericStepper();
num_x.move(30,30);
num_x.minimum=0;
num_x.maximum=stage.stageWidth;
num_x.value=clip_mc.x;
num_x.stepSize=1;
addChild(num_x);
num_y=new NumericStepper();
num_y.move(num_x.x+num_x.width,30);
num_y.minimum=0;
num_y.maximum=stage.stageHeight;
num_y.value=clip_mc.y;
num_y.stepSize=1;
addChild(num_y);
num_w=new NumericStepper();
num_w.move(num_y.x+num_y.width,30);
num_w.minimum=clip_mc.width/2;
num_w.maximum=clip_mc.width*2;
num_w.value=clip_mc.width;
num_w.stepSize=1;
addChild(num_w);
num_h=new NumericStepper();
num_h.move(num_w.x+num_w.width,30);
num_h.minimum=clip_mc.height/2;
num_h.maximum=clip_mc.height*2;
num_h.value=clip_mc.height;
num_h.stepSize=1;
addChild(num_h);
num_x.addEventListener(Event.CHANGE,moveX);
num_y.addEventListener(Event.CHANGE,moveY);
num_w.addEventListener(Event.CHANGE,resizeW);
num_h.addEventListener(Event.CHANGE,resizeH);
}
private function moveX(evt:Event):void
{
clip_mc.x=evt.target.value;
}
private function moveY(evt:Event):void
{
clip_mc.y=evt.target.value;
}
private function resizeW(evt:Event):void
{
clip_mc.width=evt.target.value;
}
private function resizeH(evt:Event):void
{
clip_mc.height=evt.target.value;
}
}
}
Il risultato è il seguente:
Analizziamo il codice
Importo il necessario
import flash.display.MovieClip;
import flash.events.Event;
import fl.controls.NumericStepper;
Proprietà
4 variabili di tipo NumerciStepper
private var num_x:NumericStepper;
private var num_y:NumericStepper;
private var num_w:NumericStepper;
private var num_h:NumericStepper;
Funzione Costruttrice
chiamo il metodo init()
init();
chiamo il metodo initSteppers
initSteppers();
Metodi
init();
imposto la velocità di frame rate dell' SWF
stage.frameRate=31;
initSteppers();
creo i 4 NumericStepper, gli assegno una posizione, un valore minimo, un valore massimo, un valore iniziale, un valore del passo ( di quanto voglio che aumenti il valore ad ogni click ) e li aggiungo allo stage
num_x=new NumericStepper();
num_x.move(30,30);
num_x.minimum=0;
num_x.maximum=stage.stageWidth;
num_x.value=clip_mc.x;
num_x.stepSize=1;
addChild(num_x);
num_y=new NumericStepper();
num_y.move(num_x.x+num_x.width,30);
num_y.minimum=0;
num_y.maximum=stage.stageHeight;
num_y.value=clip_mc.y;
num_y.stepSize=1;
addChild(num_y);
num_w=new NumericStepper();
num_w.move(num_y.x+num_y.width,30);
num_w.minimum=clip_mc.width/2;
num_w.maximum=clip_mc.width*2;
num_w.value=clip_mc.width;
num_w.stepSize=1;
addChild(num_w);
num_h=new NumericStepper();
num_h.move(num_w.x+num_w.width,30);
num_h.minimum=clip_mc.height/2;
num_h.maximum=clip_mc.height*2;
num_h.value=clip_mc.height;
num_h.stepSize=1;
addChild(num_h);
assegno ad ogni NumericStepper un listener in ascolto dell' evento Event.CHANGE che chiamerà la rispettiva funzione
num_x.addEventListener(Event.CHANGE,moveX);
num_y.addEventListener(Event.CHANGE,moveY);
num_w.addEventListener(Event.CHANGE,resizeW);
num_h.addEventListener(Event.CHANGE,resizeH);
moveX(evt:Event):void
sposto la x di clip_mc in base al valore del NumericStepper corrispettivo ( che recupero con evt.target che è il numeric stepper al quale è stato cambiato il valore e poi .value è appunto il suo valore )
moveY(evt:Event):void
sposto la y di clip_mc in base al valore del NumericStepper corrispettivo
resizeW(evt:Event):void
agisco sul width di clip_mc in base al valore del NumericStepper corrispettivo
resizeY(evt:Event):void
agisco sul height di clip_mc in base al valore del NumericStepper corrispettivo
Alla prossima !