Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Disegnare poligoni con Actionscript 3.0

This is a discussion on Disegnare poligoni con Actionscript 3.0 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Ciao a tutti ! Ho creato un classe Actionscript 3.0 che permette di disegnare dei poligoni. A parte il riscontro ...


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 30-10-07, 06:43
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Disegnare poligoni con Actionscript 3.0

Ciao a tutti !

Ho creato un classe Actionscript 3.0 che permette di disegnare dei poligoni.
A parte il riscontro pratico che può trovare, questa classe ha un fine didattico quindi, per chi di voi sta imparando la programmazione Orientata agli Oggetti leggendo i tutorials di FlepStudio o in altro modo, potrebbe essere un valido esempio di studio.
Come ogni classe ha i suoi metodi ed i suoi eventi:

Metodi:
drawPolygon(radius:int,segments:int,centerX:Number ,centerY:Number,tint:uint,line:int,rotating:Number );
radius è la dimensione del poligono
segments sono i numeri di segmenti che deve avere il poligono
centerX e centerY sono le coordinate x e y nelle quali vogliamo disegnare il poligono
tint è il colore del poligono
line è lo spessore della linea di disegno del poligono
rotating ruota il poligono

fadeIn();
esegue un fade/in del poligono

fadeOut();
esegue un fade/out del poligono

Eventi:
'fadeInDone' , viene dispaciato quando il metodo fadeIn ha completato l' effetto
'fadeOutDone' viene dispaciato quando il metodo fadeOut ha completato l' effetto

Vediamo alcuni esempi...

Questa è la classe Polygon.as
Code:
/*
 *************************************
  Polygon class                              
  http://www.FlepStudio.org     
  © Author: Filippo Lughi                                      
 *************************************
 */
package
{
	import flash.display.MovieClip;
	import flash.events.Event;
	
	public class Polygon extends MovieClip
	{
		//PROPERTIES
		private var points:Array;
		
		private var id:int;
		private var ratio:Number;
		private var top:Number;
		
		private var fade_value:int;
		
		//CONSTRUCTOR
		public function Polygon()
		{
			addEventListener(Event.ADDED_TO_STAGE,init);
		}
		
		private function init(evt:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE,init);
			stage.frameRate=31;
		}
		
		//METHODS
		public function drawPolygon(radius:int,segments:int,centerX:Number,centerY:Number,tint:uint,line:int,rotating:Number):void
		{
			id=0;
			points=new Array();
			ratio=360/segments;
			top=centerY-radius;
			for(var i:int=rotating;i<=360+rotating;i+=ratio)
			{
				var xx:Number=centerX+Math.sin(radians(i))*radius;
				var yy:Number=top+(radius-Math.cos(radians(i))*radius);
				points[id]=new Array(xx,yy);
				if(id>=1) 
				{
					drawing(points[id-1][0],points[id-1][1],points[id][0],points[id][1],tint,line);
				}
				id++;
			}
			id=0;
		}
		
		private function radians(n:Number):Number 
		{
			return(Math.PI/180*n);
		}
		
		private function drawing(startX:Number,startY:Number,stopX:Number,stopY:Number,tint:Number,line:int):void 
		{
			graphics.lineStyle(line,tint,1);
			graphics.moveTo(startX,startY);
			graphics.lineTo(stopX,stopY);
		}
		
		public function fadeOut():void
		{
			fade_value=0;
			addEventListener(Event.ENTER_FRAME,fade);
		}
		public function fadeIn():void
		{
			fade_value=1;
			addEventListener(Event.ENTER_FRAME,fade);
		}
		
		//PRIVATE
		private function fade(evt:Event):void
		{
			var da:Number=fade_value-alpha;
			var aa:Number=da*.1;
			alpha+=aa;
			if(Math.abs(da)<=.05)
			{
				alpha=fade_value;
				removeEventListener(Event.ENTER_FRAME,fade);
				if(fade_value==0)
					dispatchEvent(new Event('fadeOutDone'));
				else
					dispatchEvent(new Event('fadeInDone'));
			}
		}
	}
}
Esempio1:
Code:
var polygon:Polygon=new Polygon();
addChild(polygon);
polygon.drawPolygon(100,3,100,100,0xFFFFFF,1,0);

var polygon2:Polygon=new Polygon();
addChild(polygon2);
polygon2.drawPolygon(50,4,stage.stageWidth/2,stage.stageHeight/2,0x33FFFF,3,0);

var polygon3:Polygon=new Polygon();
addChild(polygon3);
polygon3.drawPolygon(80,5,400,300,0xFF0000,6,0);
risultato






Esempio2
Code:
var polygons:int=20;

for(var i:int=0;i < polygons;i++)
{
	var polygon:Polygon=new Polygon();
	addChild(polygon);
	var distance:int=20+10*i;
	polygon.drawPolygon(distance,6,distance,distance,0xFFFFFF,1,0);
}
risultato






Esempio3
Code:
import flash.events.TimerEvent;
var my_array:Array=new Array();
var timer:Timer;
var polygons:int=40;

for(var i:int=0;i < polygons;i++)
{
	var polygon:Polygon=new Polygon();
	polygon.addEventListener('fadeInDone',reverse);
	polygon.addEventListener('fadeOutDone',reverse);
	my_array.push(polygon);
	polygon.alpha=0;
	addChild(polygon);
	var distance:int=10+5*i;
	polygon.drawPolygon(distance,6,distance,distance,0xFFFFFF,1,0);
}
timer=new Timer(50,polygons);
timer.addEventListener(TimerEvent.TIMER,go);
timer.start();

function go(evt:TimerEvent):void
{
	my_array[evt.target.currentCount-1].fadeIn();
}

function reverse(evt:Event):void
{
	if(evt.type=='fadeInDone')
		evt.target.fadeOut();
	else
		evt.target.fadeIn();
}
risultato






Alla prossima & 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
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 con Actionscript 3.0 - script 3 Flep Articoli e tutorials 0 20-09-07 14:35
Disegnare con Actionscript 3.0 - script 2 Flep Articoli e tutorials 0 20-09-07 12:43
disegnare freccia alessandra Actionscript 3.0 avanzato 2 27-07-07 14:32


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


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