« Testo bi-direzionale in Flash CS3 | Index | Flex 2.0.1 Hotfix 2 »

um_minilogo.gif Cerchi articoli, tutorial e guide su Photoshop CS3, Flash CS3, Premiere Pro CS3, Actionscript 3, Flex 3 e Adobe AIR, Java e Microsoft Silverlight ?
Scarica gratis UserMatter, il magazine che tratta la User Experience. Nell'ultimo numero trovi anche: Introduzione alla programmazione orientata agli oggetti, Salvare le immagini per il web con una mappatura Alpha

Drawing API in Flash CS3 e ActionScript 3: JointStyle e CapsStyle

In questo esempio in Actionscript 3 scriveremo una funzione, drawShape(), che sfrutta le Drawing API per creare due linee che formano un angolo retto.
Tali linee possono avere caratteristiche differenti a seconda delle proprietà impostate: oltre a colore e dimensione, è possibile visualizzare in modo differente sia i punti di collegamento tra le linee che le loro estremità, utilizzando le proprietà JointStyle e CapsStyle del metodo lineStyle() - classe flash.display.Graphics - e creando degli angoli più o meno morbidi.

image.gif


Inseriamo il seguente codice nel primo frame di un nuovo Flash File (ActionScript 3.0)


1) Innanzitutto, importiamo le classi necessarie al funzionamento dello script

import flash.display.CapsStyle;
import flash.display.JointStyle;
import flash.display.LineScaleMode;
import flash.display.Shape;
import flash.geom.Rectangle;

2) Definiamo le proprietà delle linee, che utilizzeremo successivamente nella funzione drawShape()

var color:uint = 0xFF0044;
var lineWidth:Number = 20;
var lineAlpha:Number = 1.0;
var pixelHinting:Boolean = true;
var scaleMode:String = LineScaleMode.NONE;
var side:Number = 100;
var thickness:Number = 20;


3) La funzione drawShape() si occuperà di disegnare materialmente le linee sullo Stage, utilizzando i metodi lineStyle() e addChild(). Maggiori informazioni su questi argomenti sono reperibili nella documentazione ufficiale: lineStyle()addChild()

function drawShape(x:Number, y:Number, joint:String, caps:String) {

var linee:Shape = new Shape();
linee.graphics.lineStyle(thickness, color, lineAlpha, pixelHinting, "", caps, joint);
linee.graphics.moveTo(x, y);
linee.graphics.lineTo(x, y + side);
linee.graphics.lineTo(x + side, y + side);
addChild(linee);

showLabel(x, y, joint, caps)

}

4)Visualizziamo un testo descrittivo sotto ogni Shape per visualizzare le proprietà JointStyle e CapsStyle utilizzate.

function showLabel(x:Number, y:Number, joint:String, caps:String) {

var label:TextField = new TextField();
label.multiline = true;
label.text = "JointStyle: " + joint + "\n" +
"CapsStyle: " + caps;
label.x = x;
label.y = y+side+20;

var format:TextFormat = new TextFormat();
format.font = "Verdana";
format.color = 0xFF0000;
format.size = 10;
format.underline = true;
label.defaultTextFormat = format;
addChild(label);

}

6) Disegnamo tre Shape con posizioni x,y e proprietà JointStyle e CapsStyle differenti

drawShape(50, 50, JointStyle.MITER, CapsStyle.ROUND )
drawShape(200, 50, JointStyle.ROUND, CapsStyle.ROUND)
drawShape(350, 50, JointStyle.BEVEL, CapsStyle.SQUARE)


TrackBack

TrackBack URL per questo post:
http://blog.augitaly.com/mt-tb.cgi/242

Commenti (2)

tiTano:

Puccola pulce:)

manca var thickness al punto 2)

Fabio :

Hai ragione!! Ho corretto l'articolo :)
Grazie dell'avviso. Gentilissimo

Invia un commento

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Libro Flex 3