« 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.)