AS2 Class.Draw HowTo
Inserito il 30-10-2007
Rilascio pubblicamente una classe che si occupa di disegnare runtime delle forme semplici, come rettangoli, cerchi eccetera, attraverso una serie di metodi statici.
La classe Draw è liberamente scaricabile da ../classes/draw.zip, in cui troverete anche un esempio di utilizzo dei metodi nel codice.
Per utilizzare la classe, è necessario inserirla nella stessa cartella del fla su cui vengono richiamati i metodi
Ecco l'elenco dei metodi, e quindi delle forme, disponibili:
- Draw.rect - crea un clip e lo riempie con il disegno di un rettangolo;
- Draw.circle - crea un clip e lo riempie con il disegno di un cerchio;
- Draw.poly - crea un clip e lo riempie con il disegno di un poligono regolare di n lati;
- Draw.ipoly - crea un clip e lo riempie con il disegno di un poligono irregolare di n lati attraverso un array bidimensionale con coppie di valori coordinate;
- Draw.star - crea un clip e lo riempie con il disegno di una stella di n punte;
- Draw.round - crea un clip e lo riempie con il disegno di un rettangolo con spigoli arrotondati;
Ogni metodo prevede la possibilità di scegliere il colore e lo spessore del bordo, il colore del riempimento e la sua opacità, nonchè di assegnare direttamente al clip creato, le proprietà di aspetto principali come la posizione (_x e _y), il fattore di scala (_xscale, _yscale), la rotazione e l'opacità (_rotation, _alpha). Tutti i parametri necessari all'utilizzo dei metodi statici, sono spiegati all'interno della classe stessa attraverso i commenti.
Il file di esempio è disponibile solo per la versione 8 di flash; per completezza riporto qui il codice dell'esempio, nel caso non si possedesse una versione di Flash superiore alla 7.
// public static function rect(target:MovieClip, name:String, level:Number, width:Number, height:Number, border:Number, borderColor:Number, color:Number, objectInit:Object):MovieClip var rect:MovieClip = Draw.rect(this, 'rect', 1, 100, 100, 1, 0, 0, {alphaFill: 50}); // public static function circle(target:MovieClip, name:String, level:Number, radius:Number, border:Number, borderColor:Number, color:Number, objectInit:Object):MovieClip var circle:MovieClip = Draw.circle(this, 'circle', 2, 50, 1, 0, 0, {alphaFill: 50}); // public static function poly(target:MovieClip, name:String, level:Number, radius:Number, sideNum:Number, border:Number, borderColor:Number, color:Number, objectInit:Object):MovieClip var poly:MovieClip = Draw.poly(this, 'poly', 3, 50, 5, 1, 0, 0, {alphaFill: 50}); // public static function ipoly(target:MovieClip, name:String, level:Number, arrayOfCoords:Array, border:Number, borderColor:Number, color:Number, objectInit:Object):MovieClip var ipoly:MovieClip = Draw.ipoly(this, 'ipoly', 4, [[50,0],[100,100],[0,100]], 1, 0, 0, {alphaFill: 50}); // public static function star(target:MovieClip, name:String, level:Number, externalRadius:Number, internalRadius:Number, starTips:Number, border:Number, borderColor:Number, color:Number, objectInit:Object):MovieClip var star:MovieClip = Draw.star(this, 'star', 5, 50, 25, 5, 1, 0, 0, {alphaFill: 50}); // public static function round(target:MovieClip, name:String, level:Number, width:Number, height:Number, roundRadius:Number, border:Number, borderColor:Number, color:Number, objectInit:Object):MovieClip var round:MovieClip = Draw.round(this, 'round', 6, 100, 100, 20, 1, 0, 0, {alphaFill: 50});
Come sempre sono bene accetti commenti, modifiche e implentazioni, saluti!
