Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Disegnare con Actionscript 3.0 - script 2

This is a discussion on Disegnare con Actionscript 3.0 - script 2 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Hey ! Ecco il secondo articolo della serie disegnare con actionscript 3.0 . Per chi non avesse letto il primo articolo ...


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 20-09-07, 12:43
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,446
Rep Power: 6
Flep is on a distinguished road
Disegnare con Actionscript 3.0 - script 2

Hey !

Ecco il secondo articolo della serie disegnare con actionscript 3.0 .

Per chi non avesse letto il primo articolo può andare a leggerlo quì: Disegnare con Actionscript 3.0 - script 1

Questa volta utilizzo la classe Point per dare forma al disegno.

Sfondo nero e linee bianche ma è solo un altro esempio di quello che si può ottenere con il drawing API di Actionscript 3.0


Vediamo lo script...


Creo un FLA che salvo con nome ' disegno2.fla ' e gli applico il colore sfondo nero.

Creo la Document Class, un file AS che salvo con nome ' Disegno2.as ', implementata in questo modo:


Code:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.Point;
	
	public class Disegno2 extends Sprite
	{
		private var clips_array:Array;
		private var points_array:Array;
		
		private var num_punti:int=100;
		
		public function Disegno2()
		{
			init();
			initPoints();
			initDrawingListener();
		}
		
		private function init():void
		{
			stage.frameRate=31;
			
			clips_array=new Array();
			points_array=new Array();
		}
		
		private function initPoints():void
		{
			for(var i:int=0;i < num_punti;i++)
			{
				var xx:int=Math.random()*stage.stageWidth;
				var yy:int=Math.random()*stage.stageHeight;
				var point:Point=new Point(xx,yy);
				points_array.push(point);
				
				var sprite:Sprite=new Sprite();
				addChild(sprite);
				clips_array.push(sprite);
			}
		}
		
		private function initDrawingListener():void
		{
			addEventListener(Event.ENTER_FRAME,drawing);
		}
		
		private function drawing(e:Event):void
		{
			for(var i:int=0;i < clips_array.length;i++)
			{
				var xx:int=Math.random()*stage.stageWidth;
				var yy:int=Math.random()*stage.stageHeight;
				
				points_array[i].x=xx;
				points_array[i].y=yy;
				
				clips_array[i].graphics.clear();
				clips_array[i].graphics.moveTo(stage.stageWidth/2,stage.stageHeight/2);
				clips_array[i].graphics.lineStyle(.25,0xFFFFFF,.2);
				clips_array[i].graphics.lineTo(points_array[i].x,points_array[i].y);
			}
		}
	}
}
Ecco il risultato:










Analizziamo il codice.

Proprietà:

due arrays in cui inserisco i punti della classe Points e le sprites che creo e che utilizzo per disegnare
private var clips_array:Array;
private var points_array:Array;
un numero totale di punti ( più è alto più la CPU dell' utente ne risente )
private var num_punti:int=100;


Metodi:
init();
imposto la velocità del frame rate
stage.frameRate=31;
inizializzo i due arrays
clips_array=new Array();
points_array=new Array();


initPoints();
creo un ciclo con massima iterazione pari al valore di num_points
for(var i:int=0;i < num_punti;i++)
creo due variabili numeriche che contengono n valore casuale da 0 al valore della larghezza/altezza dello stage
var xx:int=Math.random()*stage.stageWidth;
var yy:int=Math.random()*stage.stageHeight;
creo un' istanza della classe Point a cui assegno le coordinate pari al valore delle 2 variabili xx e yy
var point:Point=new Point(xx,yy);
inserisco il point nell' array points_array per tenere traccia di ogni punto
points_array.push(point);
creo un' istanza della classe Sprite
var sprite:Sprite=new Sprite();
aggiungo la sprite al DisplayObject o non sarebbe visibile
addChild(sprite);
inserisco nell' array clips_array la sprite in modo da tenere traccia di ognuna di loro e poterle richiamare
clips_array.push(sprite);


initDrawingListener();
aggiungo un intervallo ENTER_FRAME che chiama il metodo drawing() tante volte al secondo pari al valore del frame rate
addEventListener(Event.ENTER_FRAME,drawing);


drawing();
creo un ciclo con massima iterazione pari al valore della lunghezza dell' array clips_array
for(var i:int=0;i < clips_array.length;i++)
creo due variabili numeriche che contengono n valore casuale da 0 al valore della larghezza/altezza dello stage
var xx:int=Math.random()*stage.stageWidth;
var yy:int=Math.random()*stage.stageHeight;
assegno al point, che è all' interno dell' array points_array con indice dell' iterazione ciclo del momento, le coordinate pari al valore delle variabili xx e yy
points_array[i].x=xx;
points_array[i].y=yy;
pulisco le grafiche della sprite che è all' interno dell' array clips_array con indice dell' iterazione ciclo del momento
clips_array[i].graphics.clear();
inizializzo le grafiche
clips_array[i].graphics.moveTo(stage.stageWidth/2,stage.stageHeight/2);
clips_array[i].graphics.lineStyle(.25,0xFFFFFF,.2);
passo al metodo lineTo le coordinate x e y del point che è all' interno dell' array points_array con indice dell' iterazione ciclo del momento
clips_array[i].graphics.lineTo(points_array[i].x,points_array[i].y);

NB: Avrei anche potuto ' bypassare ' e non utilizzare la classe Point, assegnando direttamente al metodo lineTo i valori delle variabili xx e yy ma questo tutorial vuole spiegare come integrare la classe Point con i disegni in runtime.

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
Disegnare con Actionscript 3.0 - script 1 Flep Articoli e tutorials 3 26-08-08 20:02
Disegnare patterns con Actionscript 3.0 Flep Articoli e tutorials 1 01-07-08 18:21
Disegnare poligoni con Actionscript 3.0 Flep Articoli e tutorials 0 30-10-07 06:43
Drawing with Actionscript 3.0 - script 3 Flep Tutorials 0 27-09-07 09:41
Disegnare con Actionscript 3.0 - script 3 Flep Articoli e tutorials 0 20-09-07 14:35


All times are GMT. The time now is 15:58.


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