public static const BEVEL:String = "bevel"
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Specifica spigoli smussati nel parametro joints del metodo flash.display.Graphics.lineStyle().
public static const MITER:String = "miter"
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Specifica spigoli troncati nel parametro joints del metodo flash.display.Graphics.lineStyle().
public static const ROUND:String = "round"
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
Specifica spigoli arrotondati nel parametro joints del metodo flash.display.Graphics.lineStyle().
L'esempio seguente utilizza la classe JointStyleExample per mostrare il risultato di tre stili di spigoli diversi applicati a tre insiemi di linee con spigoli. Questa operazione viene eseguita mediante la procedura seguente:
- Di seguito sono riportate le proprietà di ciascuna linea:
- La lunghezza della linea è impostata su 80 pixel.
- Il colore del bordo è impostato su arancione.
- La dimensione del bordo è impostata su 30 pixel.
- Il colore di evidenziazione è impostato su grigio.
- La dimensione dell'evidenziazione è impostata su 0 pixel.
- L'alfa è impostato su 1; cioè è uniforme.
- L'approssimazione dei pixel è impostata su false (i tratti non sono approssimati ai pixel pieni).
- La modalità scala della linea è impostata su normale (lo spessore viene modificato in scala).
- Le estremità del bordo e il limite della giunzione vengono dichiarati ma non impostati, pertanto vengono utilizzati i valori predefiniti.
- La funzione di costruzione della classe crea tre insiemi di due segmenti di linee collegate. Il segmento inizia alla posizione x = 0, y = 0 chiamando
doDrawCorner() tre volte con tre diversi stili di estremità della linea (troncata, rotonda, a smusso). Ognuna delle tre chiamate a doDrawCorner() utilizza lo stile di spigolo e le proprietà elencate in precedenza per disegnare due segmenti di linee collegate e le evidenziazioni a essi associate. A tale scopo, dapprima viene creato un nuovo oggetto Shape child, quindi vengono utilizzati i metodi della classe Graphics per impostare lo stile di linea e disegnare le linee e le evidenziazioni. Ogni istanza child viene aggiunta all'elenco di visualizzazione e prontamente disegnata sullo stage.
- I segmenti di linee collegati vengono quindi ridisegnati mediante il metodo
refreshLayout() in corrispondenza di y = 80 pixel e a partire da x = 80 pixel, con una separazione di 25 pixel tra i segmenti di linea.
package {
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.JointStyle;
import flash.display.LineScaleMode;
import flash.display.Shape;
import flash.display.Sprite;
public class JointStyleExample extends Sprite {
private var size:uint = 80;
private var borderColor:uint = 0xFFCC00;
private var borderSize:uint = 30;
private var highlightColor:uint = 0x666666;
private var highlightSize:uint = 0;
private var gutter:uint = 25;
private var borderAlpha:uint = 1;
private var borderPixelHinting:Boolean = false;
private var borderScaleMode:String = LineScaleMode.NORMAL;
private var borderCaps:String;
private var borderMiterLimit:uint;
public function JointStyleExample() {
doDrawCorner(JointStyle.MITER);
doDrawCorner(JointStyle.ROUND);
doDrawCorner(JointStyle.BEVEL);
refreshLayout();
}
private function doDrawCorner(jointStyle:String):void {
var halfSize:uint = Math.round(size / 2);
var child:Shape = new Shape();
child.graphics.lineStyle(borderSize,
borderColor,
borderAlpha,
borderPixelHinting,
borderScaleMode,
borderCaps,
jointStyle,
borderMiterLimit);
child.graphics.lineTo(0, 0);
child.graphics.lineTo(size, 0);
child.graphics.lineTo(halfSize, size);
child.graphics.endFill();
child.graphics.moveTo(0, 0);
child.graphics.lineStyle(highlightSize, highlightColor);
child.graphics.lineTo(0, 0);
child.graphics.lineTo(size, 0);
child.graphics.lineTo(halfSize, size);
addChild(child);
}
private function refreshLayout():void {
var ln:uint = numChildren;
var child:DisplayObject;
var lastChild:DisplayObject = getChildAt(0);
lastChild.x = size;
lastChild.y = size;
for (var i:uint = 1; i < ln; i++) {
child = getChildAt(i);
child.x = gutter + lastChild.x + lastChild.width;
child.y = size;
lastChild = child;
}
}
}
}