Pacchettoflash.display
Classepublic final class Graphics
EreditarietàGraphics Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La classe Graphics contiene una serie di metodi che possono essere utilizzati per creare una forma vettoriale. Gli oggetti di visualizzazione che supportano il disegno sono gli oggetti Sprite e Shape. Ciascuna di queste classi ha una proprietà graphics che corrisponde a un oggetto Graphics. Le seguenti funzioni facilitano l'uso della classe: drawRect(), drawRoundRect(), drawCircle() e drawEllipse().

Non è possibile creare un oggetto Graphics direttamente dal codice ActionScript. Se si chiama new Graphics(), viene generata un'eccezione.

La classe Graphics è finale; non può avere sottoclassi.

Vedere gli esempi

Vedere anche

Nozioni fondamentali sull'uso dell'API di disegno


Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
  
beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
Riempie un'area di disegno con un'immagine bitmap.
Graphics
  
beginFill(color:uint, alpha:Number = 1.0):void
Specifica un riempimento semplice a colore singolo che viene utilizzato da Flash Player per le chiamate successive ad altri metodi Graphics dell'oggetto, quali lineTo() o drawCircle().
Graphics
  
beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
Specifica un riempimento con gradiente che viene utilizzato da Flash Player per le chiamate successive ad altri metodi Graphics dell'oggetto, quali lineTo() o drawCircle().
Graphics
  
Cancella gli elementi grafici disegnati in questo oggetto Graphics e ripristina le impostazioni dello stile di linea e di riempimento.
Graphics
  
curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void
Disegna una curva con lo stile di linea corrente dalla posizione di disegno corrente a (anchorX, anchorY) mediante il punto di controllo specificato da (controlX, controlY).
Graphics
  
Disegna un cerchio.
Graphics
  
drawEllipse(x:Number, y:Number, width:Number, height:Number):void
Disegna un'ellisse.
Graphics
  
drawRect(x:Number, y:Number, width:Number, height:Number):void
Disegna un rettangolo.
Graphics
  
drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void
Disegna un rettangolo arrotondato.
Graphics
  
Applica un riempimento alle linee e alle curve aggiunte dopo l'ultima chiamata al metodo beginFill(), beginGradientFill() o beginBitmapFill().
Graphics
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
  
lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
Specifica un gradiente per lo stile di linea che viene utilizzato da Flash Player per le chiamate successive ad altri metodi Graphics, ad esempio lineTo() o drawCircle(), per l'oggetto.
Graphics
  
lineStyle(thickness:Number, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void
Specifica uno stile di linea che viene utilizzato da Flash Player per le chiamate successive ad altri metodi Graphics dell'oggetto, quali lineTo() o drawCircle().
Graphics
  
Disegna una linea con lo stile di linea corrente dalla posizione di disegno corrente a (x, y); la posizione di disegno corrente viene quindi impostata su (x, y).
Graphics
  
Sposta la posizione di disegno corrente nel punto (x, y).
Graphics
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
Descrizione dei metodi
beginBitmapFill()metodo
public function beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Riempie un'area di disegno con un'immagine bitmap. Per riempire l'area, la bitmap può essere ripetuta o affiancata a mosaico. Il riempimento rimane attivo finché non viene chiamato il metodo beginFill(), beginBitmapFill() o beginGradientFill(). Una chiamata al metodo clear() cancella il riempimento.

Flash Player non esegue il rendering del riempimento finché non viene chiamato il metodo endFill().

Parametri

bitmap:BitmapData — Un'immagine bitmap opaca o trasparente che contiene i bit da visualizzare.
 
matrix:Matrix (default = null) — Un oggetto matrice, della classe flash.geom.Matrix, che è possibile utilizzare per definire trasformazioni sulla bitmap. Ad esempio, è possibile utilizzare la matrice seguente per ruotare una bitmap di 45 gradi (pi/4 radianti):
  matrix = new flash.geom.Matrix(); 
  matrix.rotate(Math.PI/4);
  
 
repeat:Boolean (default = true) — Se è true, l'immagine bitmap viene ripetuta in un motivo a mosaico. Se è false, l'immagine bitmap non viene ripetuta e i bordi della bitmap vengono utilizzati per qualsiasi area di riempimento che si estende al di là della bitmap.

Si consideri ad esempio la seguente immagine bitmap (uno schema a scacchiera di 20 x 20 pixel):

Quando repeat è impostato su true (come nell'esempio seguente), il riempimento della bitmap ripete l'immagine bitmap:

Quando repeat è impostato su false, il riempimento utilizza i pixel dei bordi per l'area di riempimento all'esterno della bitmap:

 
smooth:Boolean (default = false) — Se è false, il rendering delle immagini bitmap modificate in scala viene eseguito utilizzando un algoritmo "Nearest Neighbor" e risultano "pixelizzate". Se è true, il rendering delle immagini bitmap modificate in scala viene eseguito utilizzando un algoritmo bilineare. Il rendering con l'algoritmo "Nearest Neighbor" è generalmente più veloce.

Vedere anche


Esempio

L'esempio seguente utilizza un'immagine (image1.jpg) ruotata e ripetuta per riempire un rettangolo.
  1. Il file di immagine (image1.jpg) viene caricato utilizzando gli oggetti Loader e URLRequest. Il file si trova nella stessa directory del file SWF. Il file SWF deve essere compilato con l'opzione Sicurezza riproduzione locale impostata su Accedi solo ai file locali.
  2. Quando l'immagine viene caricata (Event è completo), viene chiamato il metodo drawImage(). Il metodo ioErrorHandler() scrive un commento di traccia se l'immagine non è stata caricata correttamente.
  3. Nel metodo drawImage(), viene creata un'istanza dell'oggetto BitmapData e le relative larghezza e altezza vengono impostate in base all'immagine (image1.jpg). L'immagine di origine viene disegnata nell'oggetto BitmapData. Successivamente, viene disegnato un rettangolo nell'oggetto Sprite mySprite e l'oggetto BitmapData viene utilizzato come riempimento. Utilizzando un oggetto Matrix, il metodo beginBitmapFill() ruota l'immagine di 45 gradi, quindi inizia a riempire il rettangolo con l'immagine fino alla fine.
package {
    import flash.display.Sprite;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.geom.Matrix;

    public class Graphics_beginBitmapFillExample extends Sprite {
 
        private var url:String = "image1.jpg";
        private var loader:Loader = new Loader();

        public function Graphics_beginBitmapFillExample() {

            var request:URLRequest = new URLRequest(url);
            
            loader.load(request);
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }

        private function drawImage(event:Event):void {

            var mySprite:Sprite = new Sprite();
            var myBitmap:BitmapData = new BitmapData(loader.width, loader.height, false);
  
            myBitmap.draw(loader, new Matrix());
            
            var matrix:Matrix = new Matrix();
            matrix.rotate(Math.PI/4);
            
            mySprite.graphics.beginBitmapFill(myBitmap, matrix, true);
            mySprite.graphics.drawRect(100, 50, 200, 90);
            mySprite.graphics.endFill();
            
            addChild(mySprite);
        }
 
         private function ioErrorHandler(event:IOErrorEvent):void {
            trace("Unable to load image: " + url);
        }
    }   
}
beginFill()metodo 
public function beginFill(color:uint, alpha:Number = 1.0):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica un riempimento semplice a colore singolo che viene utilizzato da Flash Player per le chiamate successive ad altri metodi Graphics (ad esempio lineTo() o drawCircle()) per l'oggetto. Il riempimento rimane attivo finché non viene chiamato il metodo beginFill(), beginBitmapFill() o beginGradientFill(). Una chiamata al metodo clear() cancella il riempimento.

Flash Player non esegue il rendering del riempimento finché non viene chiamato il metodo endFill().

Parametri

color:uint — Il colore del riempimento (0xRRGGBB).
 
alpha:Number (default = 1.0) — Il valore alfa del riempimento (da 0,0 a 1,0).

Vedere anche


Esempio
Come utilizzare gli esempi
vedere l'esempio alla fine di questa classe per una descrizione della modalità di utilizzo del metodo.
beginGradientFill()metodo 
public function beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica un riempimento con gradiente che viene utilizzato da Flash Player per le chiamate successive ad altri metodi Graphics (ad esempio lineTo() o drawCircle()) per l'oggetto. Il riempimento rimane attivo finché non viene chiamato il metodo beginFill(), beginBitmapFill() o beginGradientFill(). Una chiamata al metodo clear() cancella il riempimento.

Flash Player non esegue il rendering del riempimento finché non viene chiamato il metodo endFill().

Parametri

type:String — Un valore della classe GradientType che specifica il tipo di gradiente da utilizzare: GradientType.LINEAR o GradientType.RADIAL.
 
colors:Array — Un array di valori di colore RGB esadecimali da utilizzare nel gradiente (ad esempio, il rosso è 0xFF0000, il blu 0x0000FF e così via). È possibile specificare fino a 15 colori. Per ciascun colore, accertarsi di specificare un valore corrispondente nei parametri alpha e ratio.
 
alphas:Array — Un array di valori alfa per i colori corrispondenti nell'array dei colori; i valori validi sono compresi tra 0 e 1. Se il valore è minore di 0, il valore predefinito è 0. Se è maggiore di 1, il valore predefinito è 1.
 
ratios:Array — Un array di rapporti di distribuzione del colore; i valori validi sono compresi tra 0 e 255. Questo valore definisce la percentuale della larghezza in cui il colore viene campionato al 100%. Il valore 0 rappresenta la posizione di sinistra nel riquadro del gradiente, mentre 255 rappresenta la posizione di destra.

Nota: questo valore rappresenta le posizioni all'interno del riquadro del gradiente, non nello spazio di coordinate del gradiente finale, che potrebbe essere più largo o più stretto del riquadro del gradiente. Specificare un valore per ciascun valore nel parametro colors.

Ad esempio, per un gradiente lineare che include due colori, blue e verde, nell'esempio seguente è illustrata la posizione dei colori nel gradiente in base ai diversi valori dell'array ratios:

ratiosGradiente
[0, 127]
[0, 255]
[127, 255]

I valori nell'array devono aumentare in maniera sequenziale; ad esempio, [0, 63, 127, 190, 255].

 
matrix:Matrix (default = null) — Una matrice di trasformazione definita dalla classe flash.geom.Matrix. La classe flash.geom.Matrix include un metodo createGradientBox(), che consente di impostare con facilità la matrice affinché possa essere utilizzata con il metodo beginGradientFill().
 
spreadMethod:String (default = "pad") — Un valore della classe SpreadMethod che specifica il metodo spread da utilizzare: SpreadMethod.PAD, SpreadMethod.REFLECT o SpreadMethod.REPEAT.

Si consideri, ad esempio, un semplice gradiente lineare tra due colori:

  import flash.geom.*
  import flash.display.*
  var fillType:String = GradientType.LINEAR;
  var colors:Array = [0xFF0000, 0x0000FF];
  var alphas:Array = [1, 1];
  var ratios:Array = [0x00, 0xFF];
  var matr:Matrix = new Matrix();
  matr.createGradientBox(20, 20, 0, 0, 0);
  var spreadMethod:String = SpreadMethod.PAD;
  this.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);  
  this.graphics.drawRect(0,0,100,100);
  

Nell'esempio viene utilizzato SpreadMethod.PAD per il metodo spread e il riempimento del gradiente ha il seguente aspetto:

Se si utilizza SpreadMethod.REFLECT per il metodo spread, il riempimento del gradiente ha il seguente aspetto:

Se si utilizza SpreadMethod.REPEAT per il metodo spread, il riempimento del gradiente ha il seguente aspetto:

 
interpolationMethod:String (default = "rgb") — Un valore della classe InterpolationMethod che specifica il valore da utilizzare: InterpolationMethod.linearRGB o InterpolationMethod.RGB

Si consideri, ad esempio, un gradiente lineare semplice tra due colori (con il parametro spreadMethod impostato su SpreadMethod.REFLECT). I diversi metodi di interpolazione influiscono sull'aspetto come illustrato di seguito:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
 
focalPointRatio:Number (default = 0) — Un numero che controlla la posizione del punto focale del gradiente. 0 significa che il punto focale si trova al centro. 1 significa che il punto focale si trova su un bordo del cerchio del gradiente. -1 significa che il punto focale si trova sull'altro bordo del cerchio del gradiente. Un valore inferiore a -1 o superiore a 1 viene arrotondato rispettivamente a -1 o 1. Ad esempio, l'esempio seguente mostra focalPointRatio impostato su 0,75:


Genera
ArgumentError — Se il parametro type non è valido.

Vedere anche

clear()metodo 
public function clear():void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Cancella gli elementi grafici disegnati in questo oggetto Graphics e ripristina le impostazioni dello stile di linea e di riempimento.

curveTo()metodo 
public function curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Disegna una curva con lo stile di linea corrente dalla posizione di disegno corrente a (anchorX, anchorY) mediante il punto di controllo specificato da (controlX, controlY). La posizione di disegno corrente viene quindi impostata su (anchorX, anchorY). Se il clip filmato in cui si sta disegnando ha del contenuto creato con gli strumenti di disegno di Flash, le chiamate a curveTo() vengono disegnate sotto tale contenuto. Se si chiama il metodo curveTo() prima delle chiamate al metodo moveTo(), la posizione predefinita del disegno corrente viene impostata su (0, 0). Se mancano uno o più parametri, il metodo ha esito negativo e la posizione di disegno corrente non cambia.

La curva disegnata è una curva Bézier quadratica. Le curve Bézier quadratiche sono composte da due punti di ancoraggio e da un punto di controllo. La curva interpola i due punti di ancoraggio e si incurva verso il punto di controllo.

Parametri

controlX:Number — Un numero che specifica la posizione orizzontale del punto di controllo in relazione al punto di registrazione dell'oggetto di visualizzazione principale.
 
controlY:Number — Un numero che specifica la posizione verticale del punto di controllo in relazione al punto di registrazione dell'oggetto di visualizzazione principale.
 
anchorX:Number — Un numero che specifica la posizione orizzontale del punto di ancoraggio successivo in relazione al punto di registrazione dell'oggetto di visualizzazione principale.
 
anchorY:Number — Un numero che specifica la posizione verticale del punto di ancoraggio successivo in relazione al punto di registrazione dell'oggetto di visualizzazione principale.


Esempio

L'esempio seguente mostra il disegno di un oggetto circolare verde con larghezza e altezza di 100, 250 pixel a destra del punto di registrazione (0, 0) di un un oggetto di visualizzazione Sprite.

Tracciare quattro curve per creare un cerchio e riempirlo di verde.

A causa della natura dell'equazione quadratica di Bézier, il cerchio non è perfetto. Il modo migliore per disegnare un cerchio è utilizzare il metodo drawCircle() della classe Graphics.

package {
    import flash.display.Sprite;
    import flash.display.Shape;
    
    public class Graphics_curveToExample1 extends Sprite
    {
        public function Graphics_curveToExample1():void
        {
            var roundObject:Shape = new Shape();

            roundObject.graphics.beginFill(0x00FF00);
            roundObject.graphics.moveTo(250, 0);
            roundObject.graphics.curveTo(300, 0, 300, 50);
            roundObject.graphics.curveTo(300, 100, 250, 100);
            roundObject.graphics.curveTo(200, 100, 200, 50);
            roundObject.graphics.curveTo(200, 0, 250, 0);
            roundObject.graphics.endFill();
            
            this.addChild(roundObject);
        }
    }
}

L'esempio seguente mostra il disegno di una nuova luna utilizzando il metodo curveTo().

Vengono disegnate due linee curve di 1 pixel e lo spazio tra queste viene riempito di bianco. Il metodo moveTo() viene utilizzato per collocare la posizione di disegno corrente sulle coordinate (100, 100). La prima curva sposta la posizione di disegno su (100, 200), il suo punto di destinazione. La seconda curva riporta la posizione all'origine (100, 100), il suo punto di destinazione. I punti di controllo orizzontali determinano le varie dimensioni delle curve.

package {
    import flash.display.Sprite;
    import flash.display.Shape;

    public class Graphics_curveToExample2 extends Sprite
    {
        public function Graphics_curveToExample2() {
            var newMoon:Shape = new Shape();
            
            newMoon.graphics.lineStyle(1, 0);
            newMoon.graphics.beginFill(0xFFFFFF);
            newMoon.graphics.moveTo(100, 100); 
            newMoon.graphics.curveTo(30, 150, 100, 200);    
            newMoon.graphics.curveTo(50, 150, 100, 100);
            graphics.endFill();
            
            this.addChild(newMoon);
        }
    }
}
drawCircle()metodo 
public function drawCircle(x:Number, y:Number, radius:Number):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Disegna un cerchio. È necessario impostare lo stile della linea, il riempimento o entrambi prima di chiamare il metodo drawCircle(), mediante una chiamata al metodo linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parametri

x:Number — La posizione x del centro del cerchio relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
y:Number — La posizione y del centro del cerchio relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
radius:Number — Il raggio del cerchio (in pixel).

Vedere anche


Esempio
Come utilizzare gli esempi
vedere l'esempio alla fine di questa classe per una descrizione della modalità di utilizzo del metodo.
drawEllipse()metodo 
public function drawEllipse(x:Number, y:Number, width:Number, height:Number):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Disegna un'ellisse. È necessario impostare lo stile della linea, il riempimento o entrambi prima di chiamare il metodo drawEllipse(), mediante una chiamata al metodo linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parametri

x:Number — La posizione x del centro dell'ellisse relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
y:Number — La posizione y del centro dell'ellisse relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
width:Number — La larghezza dell'ellisse (in pixel).
 
height:Number — L'altezza dell'ellisse (in pixel).

Vedere anche


Esempio

L'esempio seguente utilizza la funzione drawEgg() per disegnare tre uova di diverse dimensioni (tre misure di ellisse), in base al parametro eggSize.
  1. La funzione di costruzione chiama la funzione drawEgg() e trasferisce i parametri orizzontale e verticale per la determinazione del punto in cui disegnare l'uovo, oltre al tipo di uovo (eggSize). L'altezza e la larghezza delle uova (le ellissi) possono essere utilizzate per decidere dove visualizzarle.
  2. La funzione drawEgg() disegna le ellissi di varie misure e le riempie di bianco utilizzando il metodo beginFill(). Non esiste una gestione avanzata dell'errore scritta per questa funzione.
package {
    import flash.display.Sprite;
    import flash.display.Shape;

    public class Graphics_drawEllipseExample extends Sprite
    {
        public static const SMALL:uint = 0;
        public static const MEDIUM:uint = 1;
        public static const LARGE:uint = 2;

        public function Graphics_drawEllipseExample()
        {
            drawEgg(SMALL, 0, 100);
            drawEgg(MEDIUM, 100, 60);
            drawEgg(LARGE, 250, 35);    
        }

        public function drawEgg(eggSize:uint, x:Number, y:Number):void  {
            
            var myEgg:Shape = new Shape();
            
            myEgg.graphics.beginFill(0xFFFFFF);
            myEgg.graphics.lineStyle(1);

            switch(eggSize) {
                case SMALL:
                    myEgg.graphics.drawEllipse(x, y, 60, 70);
                    break;
                case MEDIUM:
                    myEgg.graphics.drawEllipse(x, y, 120, 150);    
                    break;
                case LARGE:
                    myEgg.graphics.drawEllipse(x, y, 150, 200);
                    break;
                default:
                    trace ("Wrong size! There is no egg.");
                break;            
            }
            
            myEgg.graphics.endFill();
    
            this.addChild(myEgg);
        }
    }
}
drawRect()metodo 
public function drawRect(x:Number, y:Number, width:Number, height:Number):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Disegna un rettangolo. È necessario impostare lo stile della linea, il riempimento o entrambi prima di chiamare il metodo drawRect(), mediante una chiamata al metodo linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parametri

x:Number — Un numero che indica la posizione orizzontale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
y:Number — Un numero che indica la posizione verticale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
width:Number — La larghezza del rettangolo (in pixel).
 
height:Number — L'altezza del rettangolo (in pixel).


Genera
ArgumentError — Se il parametro width o height non è un numero (Number.NaN).

Vedere anche


Esempio
Come utilizzare gli esempi
vedere l'esempio alla fine di questa classe per una descrizione della modalità di utilizzo del metodo.
drawRoundRect()metodo 
public function drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Disegna un rettangolo arrotondato. È necessario impostare lo stile della linea, il riempimento o entrambi prima di chiamare il metodo drawRoundRect(), mediante una chiamata al metodo linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parametri

x:Number — Un numero che indica la posizione orizzontale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
y:Number — Un numero che indica la posizione verticale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
width:Number — La larghezza del rettangolo arrotondato (in pixel).
 
height:Number — L'altezza del rettangolo arrotondato (in pixel).
 
ellipseWidth:Number — La larghezza dell'ellisse utilizzata per disegnare gli angoli arrotondati (in pixel).
 
ellipseHeight:Number — L'altezza dell'ellisse utilizzata per disegnare gli angoli arrotondati (in pixel). Facoltativo; se non viene specificato un valore, il valore predefinito corrisponde a quello fornito per il parametro ellipseWidth.


Genera
ArgumentError — Se il parametro width, height, ellipseWidth o ellipseHeight non è un numero (Number.NaN).

Vedere anche


Esempio
Come utilizzare gli esempi
vedere l'esempio alla fine di questa classe per una descrizione della modalità di utilizzo del metodo.
endFill()metodo 
public function endFill():void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Applica un riempimento alle linee e alle curve aggiunte dopo l'ultima chiamata al metodo beginFill(), beginGradientFill() o beginBitmapFill(). Flash utilizza il riempimento che è stato specificato nella precedente chiamata a beginFill(), beginGradientFill() o beginBitmapFill(). Se la posizione di disegno corrente non equivale alla posizione precedente specificata in un metodo moveTo() e viene definito un riempimento, il percorso viene chiuso con una linea e successivamente riempito.

Vedere anche

lineGradientStyle()metodo 
public function lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica un gradiente per lo stile di linea che viene utilizzato da Flash Player per le chiamate successive ad altri metodi Graphics (ad esempio lineTo() o drawCircle()) per l'oggetto. Lo stile di linea rimane attivo finché non viene chiamato il metodo lineStyle() oppure il metodo lineGradientStyle() con parametri diversi. È possibile chiamare il metodo lineGradientStyle() mentre si disegna un percorso per specificare stili diversi per segmenti di linea diversi all'interno di un percorso.

Chiamare lineStyle() prima di lineGradientStyle() per attivare un tratto; in caso contrario lo stile della linea rimane undefined.

Se si chiama clear(), lo stile di linea viene reimpostato su undefined.

Parametri

type:String — Un valore della classe GradientType che specifica il tipo di gradiente da utilizzare: GradientType.LINEAR o GradientType.RADIAL.
 
colors:Array — Un array di valori di colore RGB esadecimali da utilizzare nel gradiente (ad esempio, rosso è 0xFF0000, blu è 0x0000FF e così via).
 
alphas:Array — Un array di valori alfa per i colori corrispondenti nell'array colors; i valori validi sono compresi tra 0 e 100. Se il valore è minore di 0, Flash Player utilizza 0. Se il valore è maggiore di 100, Flash Player utilizza 100.
 
ratios:Array — Un array di rapporti di distribuzione del colore; i valori validi sono compresi tra 0 e 255. Questo valore definisce la percentuale della larghezza in cui il colore viene campionato al 100%. Il valore 0 rappresenta la posizione di sinistra nel riquadro del gradiente, mentre 255 rappresenta la posizione di destra. Questo valore rappresenta le posizioni all'interno del riquadro del gradiente, non nello spazio di coordinate del gradiente finale, che potrebbe essere più largo o più stretto del riquadro del gradiente. Specificare un valore per ciascun valore nel parametro colors.

Ad esempio, per un gradiente lineare che include due colori, blue e verde, nella figura seguente è illustrata la posizione dei colori nel gradiente in base ai diversi valori dell'array ratios:

ratiosGradiente
[0, 127]
[0, 255]
[127, 255]

I valori nell'array devono aumentare in maniera sequenziale; ad esempio, [0, 63, 127, 190, 255].

 
matrix:Matrix (default = null) — Una matrice di trasformazione definita dalla classe flash.geom.Matrix. La classe flash.geom.Matrix include un metodo createGradientBox(), che consente di impostare con facilità la matrice affinché possa essere utilizzata con il metodo lineGradientStyle().
 
spreadMethod:String (default = "pad") — Un valore della classe SpreadMethod che specifica il metodo spread da utilizzare:

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT

 
interpolationMethod:String (default = "rgb") — Un valore della classe InterpolationMethod che specifica il valore da utilizzare. Si consideri, ad esempio, un gradiente lineare semplice tra due colori (con il parametro spreadMethod impostato su SpreadMethod.REFLECT). I diversi metodi di interpolazione influiscono sull'aspetto come illustrato di seguito:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB

 
focalPointRatio:Number (default = 0) — Un numero che controlla la posizione del punto focale del gradiente. Il valore 0 indica che il punto focale si trova al centro. 1 indica che il punto focale si trova su un bordo del cerchio del gradiente. -1 significa che il punto focale si trova sull'altro bordo del cerchio del gradiente. Un valore inferiore a -1 o superiore a 1 viene arrotondato rispettivamente a -1 o 1. L'immagine seguente mostra un gradiente con focalPointRatio pari a -0,75:

Vedere anche


Esempio

L'esempio seguente mostra il disegno di un rettangolo e di un cerchio con un tratto di gradiente che passa dal rosso al verde e poi al blu.

Il metodo createGradientBox() dalla classe Matrix viene utilizzato per definire il riquadro del gradiente con larghezza 200 e altezza 40. Lo spessore della linea è impostato su 5 pixel. È necessario definire lo spessore del tratto per il metodo lineGradientStyle(). L'impostazione del gradiente è lineare. I colori del gradiente sono impostati su rosso, verde e blu. La trasparenza (valore alfa) dei colori è impostata su 1 (opaco) La distribuzione del gradiente è uniforme dove i colori sono campionati al 100% a 0 (a sinistra del riquadro del gradiente), 128 (al centro del riquadro) e 255 (a destra del riquadro). La larghezza del rettangolo contiene tutta la gamma del gradiente, mentre il cerchio comprende il 50% dal centro della gamma.

package {
    import flash.display.Sprite;
    import flash.display.Shape;
    import flash.geom.Matrix; 
    import flash.display.GradientType;
    
    public class Graphics_lineGradientStyleExample extends Sprite
    {
        public function Graphics_lineGradientStyleExample()
        {
            var myShape:Shape = new Shape();
            var gradientBoxMatrix:Matrix = new Matrix();
  
            gradientBoxMatrix.createGradientBox(200, 40, 0, 0, 0);  
            
            myShape.graphics.lineStyle(5);
  
            myShape.graphics.lineGradientStyle(GradientType.LINEAR, [0xFF0000,
            0x00FF00, 0x0000FF], [1, 1, 1], [0, 128, 255], gradientBoxMatrix);
            
            myShape.graphics.drawRect(0, 0, 200, 40);
            myShape.graphics.drawCircle(100, 120, 50);  
             
            this.addChild(myShape);
    
        }
    }
}
lineStyle()metodo 
public function lineStyle(thickness:Number, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Specifica uno stile di linea che viene utilizzato da Flash per le chiamate successive ad altri metodi Graphics, ad esempio lineTo() o drawCircle(), per l'oggetto. Lo stile di linea rimane attivo finché non viene chiamato il metodo lineGradientStyle() oppure il metodo lineStyle() con parametri diversi. È possibile chiamare lineStyle() mentre si disegna un percorso per specificare stili diversi per segmenti di linea diversi all'interno del percorso.

Nota: se si chiama clear(), lo stile di linea viene reimpostato su undefined.

Parametri

thickness:Number — Un numero intero che indica lo spessore della linea, espresso in punti; i valori validi sono compresi tra 0 e 255. Se questo valore non viene specificato o se il parametro non è definito, non viene disegnata alcuna linea. Se viene passato un valore minore di 0, il valore predefinito è 0. Il valore 0 indica uno spessore sottilissimo; lo spessore massimo è 255. Se è maggiore di 255, il valore predefinito è 255.
 
color:uint (default = 0) — Un valore di colore esadecimale della linea (ad esempio, il rosso è 0xFF0000, il blu 0x0000FF e così via). Se non viene indicato un valore, il valore predefinito è 0x000000 (nero). Opzionale.
 
alpha:Number (default = 1.0) — Un numero che indica il valore alfa per il colore della linea; i valori validi sono compresi tra 0 e 1. Se non viene indicato un valore, il valore predefinito è 1 (uniforme). Se il valore è minore di 0, il valore predefinito è 0. Se è maggiore di 1, il valore predefinito è 1.
 
pixelHinting:Boolean (default = false) — Un valore booleano che specifica se approssimare i tratti ai pixel pieni. Incide sia sulla posizione degli ancoraggi di una curva, sia sulle dimensioni stesse del tratto della linea. Con pixelHinting impostato su true, Flash Player approssima la larghezza delle linee alla larghezza dei pixel interi. Con pixelHinting impostato su false, possono apparire delle discontinuità nelle curve e nelle linee rette. Ad esempio, le illustrazioni seguenti mostrano come Flash Player esegue il rendering di due rettangoli arrotondati che sono identici tranne che per l'impostazione del parametro pixelHinting utilizzato nel metodo lineStyle() (le immagini sono ingrandite al 200% per evidenziare la differenza):

Se non viene fornito un valore, non viene utilizzata l'approssimazione dei pixel (pixel hinting) per la linea.

 
scaleMode:String (default = "normal") — Un valore della classe LineScaleMode che specifica la modalità scala da utilizzare:
  • LineScaleMode.NORMAL — Lo spessore delle linee viene sempre modificato in scala quando l'oggetto è modificato in scala (impostazione predefinita).
  • LineScaleMode.NONE — Lo spessore delle linee non viene mai modificato in scala.
  • LineScaleMode.VERTICAL — Lo spessore delle linee non viene modificato in scala se l'oggetto è modificato in scala solo verticalmente. Osservare, ad esempio, i seguenti cerchi, tracciati con una linea da un pixel e con il parametro scaleMode impostato su LineScaleMode.VERTICAL. Il cerchio di sinistra è modificato in scala solo verticalmente, mentre quello di destra sia in senso verticale che orizzontale:

  • LineScaleMode.HORIZONTAL — Lo spessore delle linee non viene modificato in scala se l'oggetto è modificato in scala solo orizzontalmente. Osservare, ad esempio, i seguenti cerchi, tracciati con una linea da un pixel e con il parametro scaleMode impostato su LineScaleMode.HORIZONTAL. Il cerchio di sinistra è modificato in scala solo orizzontalmente, mentre quello di destra sia in senso orizzontale che verticale:

 
caps:String (default = null) — Un valore della classe CapsStyle che specifica il tipo di estremità alla fine delle linee. I valori validi sono CapsStyle.NONE, CapsStyle.ROUND e CapsStyle.SQUARE. Se non viene indicato un valore, Flash utilizza estremità arrotondate.

Nelle illustrazioni seguenti, ad esempio, vengono visualizzate le diverse impostazioni di capsStyle. Per ciascuna impostazione, nell'illustrazione viene visualizzata una linea blu con uno spessore 30 (per la quale si applica capsStyle), e una linea nera sovrapposta con spessore 1 (per la quale non si applica capsStyle):

 
joints:String (default = null) — Un valore della classe JointStyle che specifica il tipo di aspetto dello spigolo utilizzato per gli angoli. I valori validi sono JointStyle.BEVEL, JointStyle.MITER e JointStyle.ROUND. Se non viene indicato un valore, Flash utilizza spigoli arrotondati.

Nelle illustrazioni seguenti, ad esempio, vengono visualizzate le diverse impostazioni di joints. Per ciascuna impostazione, nell'illustrazione viene visualizzata una linea blu ad angolo con uno spessore 30 (per la quale si applica jointStyle), e una linea nera ad angolo sovrapposta con spessore 1 (per la quale non si applica jointStyle):

Nota:per joints impostato su JointStyle.MITER, è possibile limitare la lunghezza della giunzione ad angolo utilizzando il parametro miterLimit.

 
miterLimit:Number (default = 3) — Un numero che indica il limite in corrispondenza del quale lo spigolo viene troncato. L'intervallo di valori validi è compreso tra 1 e 255, e i valori non compresi in questo intervallo vengono approssimati a 1 o 255. Il valore viene utilizzato solo se jointStyle è impostato su "miter". Il valore miterLimit rappresenta la lunghezza per la quale una giunzione ad angolo può estendersi oltre il punto in cui le linee si incontrano per costituire uno spigolo. Il valore esprime un fattore del valore thickness della linea. Ad esempio, con un fattore miterLimit 2,5 ed un valore di 10 pixel per thickness, lo spigolo viene troncato a 25 pixel.

Si considerino ad esempio le seguenti linee angolari, ciascuna tracciata con thickness pari a 20, ma con miterLimit impostato su 1, 2 e 4. Sono sovrapposte le linee di riferimento di colore nero che mostrano i punti di incontro degli spigoli:

Si noti che un determinato valore miterLimit ha un angolo massimo specifico per il quale lo spigolo viene troncato. Nella tabella seguente sono riportati alcuni esempi:

Valore miterLimit:Gli angoli di dimensioni inferiori a questo vengono troncati:
1.41490 gradi
260 gradi
430 gradi
815 gradi

Vedere anche


Esempio
Come utilizzare gli esempi
Vedere l'esempio del metodo lineTo() o moveTo() per capire come utilizzare il metodo getStyle().
lineTo()metodo 
public function lineTo(x:Number, y:Number):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Disegna una linea con lo stile di linea corrente dalla posizione di disegno corrente a (x, y); la posizione di disegno corrente viene quindi impostata su (x, y). Se l'oggetto di visualizzazione in cui si sta disegnando ha del contenuto creato con gli strumenti di disegno di Flash, le chiamate al metodo lineTo() vengono disegnate sotto tale contenuto. Se si chiama lineTo() prima di qualunque chiamata al metodo moveTo(), la posizione predefinita per il disegno corrente viene impostata su (0, 0). Se mancano uno o più parametri, il metodo ha esito negativo e la posizione di disegno corrente non cambia.

Parametri

x:Number — Un numero che indica la posizione orizzontale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
y:Number — Un numero che indica la posizione verticale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).


Esempio

L'esempio seguente mostra il disegno di un trapezio utilizzando il metodo lineTo(), partendo dai pixel (100, 100).

Lo spessore della linea è impostato su 10 pixel, il colore è oro e opaco, le estremità alla fine delle linee sono assenti (tutte le linee sono unite) e l'unione tra le linee è impostata su TRONCATO, con il limite di troncamento fissato a 10, per ottenere angoli netti e aguzzi.

package {
    import flash.display.Sprite;
    import flash.display.LineScaleMode;
    import flash.display.CapsStyle;
    import flash.display.JointStyle;
    import flash.display.Shape;


    public class Graphics_lineToExample extends Sprite {

        public function Graphics_lineToExample() {

            var trapezoid:Shape = new Shape();    

            trapezoid.graphics.lineStyle(10, 0xFFD700, 1, false, LineScaleMode.VERTICAL,
                               CapsStyle.NONE, JointStyle.MITER, 10);

            trapezoid.graphics.moveTo(100, 100);
 
            trapezoid.graphics.lineTo(120, 50);
            trapezoid.graphics.lineTo(200, 50);
            trapezoid.graphics.lineTo(220, 100);
            trapezoid.graphics.lineTo(100, 100); 

            this.addChild(trapezoid);
        }
    }
}
moveTo()metodo 
public function moveTo(x:Number, y:Number):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Sposta la posizione di disegno corrente nel punto (x, y). Se mancano uno o più parametri, il metodo ha esito negativo e la posizione di disegno corrente non cambia.

Parametri

x:Number — Un numero che indica la posizione orizzontale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).
 
y:Number — Un numero che indica la posizione verticale relativa al punto di registrazione dell'oggetto di visualizzazione principale (in pixel).


Esempio

L'esempio seguente illustra il disegno di una linea tratteggiata con spessore di tre pixel utilizzando i metodi moveTo() e lineTo().

Utilizzando il metodo lineStyle(), lo spessore della linea è impostato su 3 pixel. L'impostazione impedisce inoltre la scalabilità. Il colore è impostato su rosso con opacità del 25%. La proprietà CapsStyle è impostata su quadrato (l'impostazione predefinita è tondo).

Poiché Graphics_moveToExample è un'istanza della classe Sprite, ha accesso a tutti i metodi della classe Graphics. I metodi della classe Graphics possono essere utilizzati per disegnare sull'oggetto Sprite Graphic_moveToExample. Tuttavia, non inserire l'oggetto di disegno vettoriale in Shape limita le possibilità di gestione, movimento o modifica.

package {
    import flash.display.Sprite;
    import flash.display.CapsStyle;
    import flash.display.LineScaleMode;

    public class Graphics_moveToExample extends Sprite
    {
        public function Graphics_moveToExample() {
            
            graphics.lineStyle(3, 0x990000, 0.25, false, 
                            LineScaleMode.NONE, CapsStyle.SQUARE);

            graphics.moveTo(10, 20);
            graphics.lineTo(20, 20);
            graphics.moveTo(30, 20);
            graphics.lineTo(50, 20);
            graphics.moveTo(60, 20);
            graphics.lineTo(80, 20);
            graphics.moveTo(90, 20);
            graphics.lineTo(110, 20);            
            graphics.moveTo(120, 20);
            graphics.lineTo(130, 20);           
        }
    }
}
Esempi Come utilizzare gli esempi
GraphicsExample.as

L'esempio seguente utilizza la classe GraphicsExample per disegnare un cerchio, un rettangolo arrotondato e un quadrato. Questa operazione viene eseguita mediante la procedura seguente:
  1. Dichiarare una proprietà size per utilizzarla in seguito quando si determineranno le dimensioni di ogni forma.
  2. Dichiarare le proprietà che impostano l'arancione come colore di sfondo e il grigio scuro come colore del bordo, che specificano la dimensione del bordo su 0 pixel e il raggio dell'angolo su 9 pixel e che impostano 5 pixel di distanza tra il bordo dello stage e gli altri oggetti.
  3. Utilizzare le proprietà dichiarate in precedenza insieme ai metodi incorporati della classe Graphics per disegnare il cerchio, il rettangolo arrotondato e il quadrato in corrispondenza delle coordinate x = 0, y = 0.
  4. Ridisegnare ognuna delle forme lungo la parte superiore dello stage, partendo da x = 5, y = 5 e con una spaziatura di 5 pixel tra le forme.

package {
    import flash.display.DisplayObject;
    import flash.display.Graphics;
    import flash.display.Shape;
    import flash.display.Sprite;

    public class GraphicsExample extends Sprite {
        private var size:uint         = 80;
        private var bgColor:uint      = 0xFFCC00;
        private var borderColor:uint  = 0x666666;
        private var borderSize:uint   = 0;
        private var cornerRadius:uint = 9;
        private var gutter:uint       = 5;

        public function GraphicsExample() {
            doDrawCircle();
            doDrawRoundRect();
            doDrawRect();
            refreshLayout();
        }

        private function refreshLayout():void {
            var ln:uint = numChildren;
            var child:DisplayObject;
            var lastChild:DisplayObject = getChildAt(0);
            lastChild.x = gutter;
            lastChild.y = gutter;
            for (var i:uint = 1; i < ln; i++) {
                child = getChildAt(i);
                child.x = gutter + lastChild.x + lastChild.width;
                child.y = gutter;
                lastChild = child;
            }
        }

        private function doDrawCircle():void {
            var child:Shape = new Shape();
            var halfSize:uint = Math.round(size / 2);
            child.graphics.beginFill(bgColor);
            child.graphics.lineStyle(borderSize, borderColor);
            child.graphics.drawCircle(halfSize, halfSize, halfSize);
            child.graphics.endFill();
            addChild(child);
        }

        private function doDrawRoundRect():void {
            var child:Shape = new Shape();
            child.graphics.beginFill(bgColor);
            child.graphics.lineStyle(borderSize, borderColor);
            child.graphics.drawRoundRect(0, 0, size, size, cornerRadius);
            child.graphics.endFill();
            addChild(child);
        }

        private function doDrawRect():void {
            var child:Shape = new Shape();
            child.graphics.beginFill(bgColor);
            child.graphics.lineStyle(borderSize, borderColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            addChild(child);
        }
    }
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/display/Graphics.html