Paqueteflash.display
Clasepublic final class Graphics
HerenciaGraphics Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase Graphics contiene un conjunto de métodos que puede utilizar para crear una figura vectorial. Entre los objetos de visualización que admiten el dibujo se encuentran los objetos Sprite y Shape. Cada una de estas clases incluye una propiedad graphics que es un objeto Graphics. Las que siguen son algunas de las funciones auxiliares que se proporcionan para mayor facilidad: drawRect(), drawRoundRect(), drawCircle() y drawEllipse().

No puede crear un objeto Graphics directamente a partir del código ActionScript. Si llama a new Graphics(), se emitirá una excepción.

La clase Graphics es final; no puede tener subclases.

Ver los ejemplos

Véase también

Fundamentos de la utilización de la API de dibujo


Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
Métodos públicos
 MétodoDefinido por
  
beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
Rellena un área de dibujo con una imagen de mapa de bits.
Graphics
  
beginFill(color:uint, alpha:Number = 1.0):void
Especifica un relleno simple de un solo color que Flash Player utiliza para las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto.
Graphics
  
beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
Especifica un relleno con degradado que Flash Player utiliza para las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto.
Graphics
  
Borra el gráfico que se había dibujado en este objeto Graphics y restablece la configuración de relleno y estilo de línea.
Graphics
  
curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void
Dibuja una curva con el estilo de línea actual desde la posición de dibujo actual hasta (anchorX, anchorY) utilizando el punto de control especificado con (controlX, controlY).
Graphics
  
Dibuja un círculo.
Graphics
  
drawEllipse(x:Number, y:Number, width:Number, height:Number):void
Dibuja una elipse.
Graphics
  
drawRect(x:Number, y:Number, width:Number, height:Number):void
Dibuja un rectángulo.
Graphics
  
drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void
Dibuja un rectángulo redondeado.
Graphics
  
Aplica un relleno a las líneas y curvas añadidas desde la última llamada al método beginFill(), beginGradientFill() o beginBitmapFill().
Graphics
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
  
lineGradientStyle(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void
Especifica un degradado para el estilo de línea que Flash Player utiliza en las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto.
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
Especifica un estilo de línea que Flash utiliza para las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto.
Graphics
  
Dibuja una línea utilizando el estilo de línea actual desde la posición de dibujo actual hasta (x, y); la posición de dibujo actual se establece posteriormente como (x, y).
Graphics
  
Mueve la posición de dibujo actual a (x, y).
Graphics
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
Información sobre métodos
beginBitmapFill()método
public function beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Rellena un área de dibujo con una imagen de mapa de bits. El mapa de bits rellena el área a base de repeticiones o mosaicos. El relleno surtirá efecto hasta que llame al método beginFill(), beginBitmapFill() o beginGradientFill(). Al llamar al método clear(), se borra el relleno.

Flash Player no muestra el relleno hasta que se llama al método endFill().

Parámetros

bitmap:BitmapData — Una imagen de mapa de bits transparente u opaca que contiene los bits que deben mostrarse.
 
matrix:Matrix (default = null) — Objeto de matriz (de la clase flash.geom.Matrix) que puede utilizar para definir transformaciones en el mapa de bits. Por ejemplo, es posible utilizar la siguiente matriz para rotar un mapa de bits 45 grados (pi/4 radianes):
  matrix = new flash.geom.Matrix();
  matrix.rotate(Math.PI/4);
  
 
repeat:Boolean (default = true) — Si el valor es true, la imagen de mapa de bits se repite en un patrón de mosaico. Si el valor es false, la imagen no se repite y los bordes del mapa de bits se utilizan para cualquier área de relleno que se extienda más allá del mapa de bits.

Por ejemplo, considere el mapa de bits siguiente (un patrón de tablero de ajedrez de 20 x 20 píxeles):

Cuando repeat se define como true (como en el ejemplo siguiente), el relleno repite el mapa de bits:

Cuando repeat se establece en false, el relleno de mapa de bits utiliza los píxeles del borde para el área de relleno fuera del mapa de bits:

 
smooth:Boolean (default = false) — Si el valor es false, las imágenes de mapa de bits que aumentan de escala se representan con un algoritmo de vecino más cercano y se obtiene un aspecto pixelado. Si el valor es true, las imágenes de mapa de bits que aumentan de escala se representan con un algoritmo de interpolación bilineal. La representación con el algoritmo de vecino más cercano suele ser más rápida.

Véase también


Ejemplo

El ejemplo siguiente muestra una imagen (image1.jpg) que se gira y se repite para rellenar un rectángulo.
  1. Se carga el archivo de imagen (image1.jpg) mediante los objetos Loader y URLRequest. En este caso el archivo está en el mismo directorio que el archivo SWF. El archivo SWF debe compilarse con Seguridad de reproducción local establecida como Acceder sólo a archivos locales.
  2. Cuando se carga la imagen (se completa Event), se llama al método drawImage(). El método ioErrorHandler() escribe un comentario de seguimiento si la imagen no se cargó correctamente.
  3. En el método drawImage(), se crea la instancia de un objeto BitmapData y la anchura y altura se establecen con la imagen (image1.jpg). A continuación, la imagen de origen se dibuja en el objeto BitmapData. Después se dibuja en el objeto Sprite mySprite y se utiliza el objeto BitmapData para rellenarlo. Mediante el objeto Matrix, el método beginBitmapFill() gira la imagen 45º y después comienza a rellenar el rectángulo con la imagen hasta que finaliza.
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()método 
public function beginFill(color:uint, alpha:Number = 1.0):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica un relleno simple de un solo color que Flash Player utiliza para las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto. El relleno surtirá efecto hasta que llame al método beginFill(), beginBitmapFill() o beginGradientFill(). Al llamar al método clear(), se borra el relleno.

Flash Player no muestra el relleno hasta que se llama al método endFill().

Parámetros

color:uint — Color del relleno (0xRRGGBB).
 
alpha:Number (default = 1.0) — Valor alfa del relleno (de 0,0 a 1,0).

Véase también


Ejemplo
Cómo utilizar los ejemplos
Consulte el ejemplo al final de esta clase para saber cómo utilizar este método.
beginGradientFill()método 
public function beginGradientFill(type:String, colors:Array, alphas:Array, ratios:Array, matrix:Matrix = null, spreadMethod:String = "pad", interpolationMethod:String = "rgb", focalPointRatio:Number = 0):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica un relleno degradado que Flash Player utiliza para las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto. El relleno surtirá efecto hasta que llame al método beginFill(), beginBitmapFill() o beginGradientFill(). Al llamar al método clear(), se borra el relleno.

Flash Player no muestra el relleno hasta que se llama al método endFill().

Parámetros

type:String — Un valor de la clase GradientType que especifica el tipo de degradado que debe utilizarse: GradientType.LINEAR o GradientType.RADIAL.
 
colors:Array — Matriz de valores de color RGB hexadecimales que se utiliza en el degradado; por ejemplo, rojo es 0xFF0000, azul es 0x0000FF, etc. Puede utilizar hasta 15 colores. Para cada color, asegúrese de especificar un valor correspondiente en los parámetros de alfas y proporciones.
 
alphas:Array — Matriz de valores alfa para los colores correspondientes de la matriz de colores; los valores válidos son del 0 al 100. Si el valor es inferior a 0, el valor predeterminado es 0. Si el valor es superior a 1, el valor predeterminado es 1.
 
ratios:Array — Matriz de proporciones de distribución de color; los valores válidos van de 0 a 255. Este valor define el porcentaje de la anchura donde el color se muestrea al 100%. El valor 0 representa la posición izquierda del cuadro de degradado, mientras que 255 representa la posición derecha del cuadro de degradado.

Nota: este valor representa posiciones del cuadro de degradado, no el espacio de coordenadas del degradado final, que podría ser más ancho o más delgado que el cuadro de degradado. Introduzca un valor con el parámetro colors.

Por ejemplo, en el caso de un degradado lineal con dos colores, azul y verde, el siguiente ejemplo ilustra la colocación de los colores en el degradado en función de los diferentes valores en la matriz ratios:

ratiosDegradado
[0, 127]
[0, 255]
[127, 255]

Los valores de la matriz deben aumentar secuencialmente; por ejemplo, [0, 63, 127, 190, 255].

 
matrix:Matrix (default = null) — Matriz de transformación definida por la clase flash.geom.Matrix. La clase flash.geom.Matrix incluye un método createGradientBox() que permite configurar cómodamente la matriz para utilizarla con el método beginGradientFill().
 
spreadMethod:String (default = "pad") — Un valor de la clase SpreadMethod que especifica el modo de extensión que debe utilizarse: SpreadMethod.PAD, SpreadMethod.REFLECT o SpreadMethod.REPEAT.

Por ejemplo, imagine un degradado lineal sencillo entre dos colores:

  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);
  

En este caso se utiliza SpreadMethod.PAD como método de extensión, por lo que el relleno con degradado tendrá este aspecto:

Si utiliza SpreadMethod.REFLECT como método de extensión, el relleno con degradado tendrá este aspecto:

Si utiliza SpreadMethod.REPEAT como método de extensión, el relleno con degradado tendrá este aspecto:

 
interpolationMethod:String (default = "rgb") — Valor de la clase InterpolationMethod que especifica el valor que debe utilizarse: InterpolationMethod.linearRGB o InterpolationMethod.RGB

Por ejemplo, imagine un degradado lineal sencillo entre dos colores (con el parámetro spreadMethod definido como SpreadMethod.REFLECT). Los diferentes métodos de interpolación afectan al aspecto de este modo:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
 
focalPointRatio:Number (default = 0) — Número que controla la ubicación del punto focal del degradado. El valor 0 significa que el punto focal está en el centro. El valor 1 significa que el punto focal se encuentra en un borde del círculo del degradado. El valor -1 significa que el punto focal se encuentra en el otro borde del círculo del degradado. Un valor menor que -1 o mayor que 1 se redondea a -1 o 1. Por ejemplo, en el ejemplo siguiente, se muestra focalPointRatio definido en 0,75:


Emite
ArgumentError — Si el parámetro type no es válido.

Véase también

clear()método 
public function clear():void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Borra el gráfico que se había dibujado en este objeto Graphics y restablece la configuración de relleno y estilo de línea.

curveTo()método 
public function curveTo(controlX:Number, controlY:Number, anchorX:Number, anchorY:Number):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Dibuja una curva con el estilo de línea actual desde la posición de dibujo actual hasta (anchorX, anchorY) utilizando el punto de control especificado con (controlX, controlY). La posición de dibujo actual se establece entonces como (anchorX, anchorY). Si el clip de película en el que está dibujando incluye contenido creado con las herramientas de dibujo de Flash, las llamadas al método curveTo() se dibujarán debajo de este contenido. Si llama al método curveTo() antes de realizar ninguna llamada al método moveTo(), la posición predeterminada para el dibujo actual será (0, 0). Si falta alguno de los parámetros, este método fallará y la posición del dibujo actual no cambiará.

La curva dibujada es una curva cuadrática de Bézier. Las curvas cuadráticas de Bézier constan de dos puntos de anclaje y un punto de control. La curva interpola los dos puntos de anclaje y se dirige al punto de control.

Parámetros

controlX:Number — Número que especifica la posición horizontal del punto de control con respecto al punto de registro del objeto de visualización principal.
 
controlY:Number — Número que especifica la posición vertical del punto de control con respecto al punto de registro del objeto de visualización principal.
 
anchorX:Number — Número que especifica la posición horizontal del siguiente punto de anclaje con respecto al punto de registro del objeto de visualización principal.
 
anchorY:Number — Número que especifica la posición vertical del siguiente punto de anclaje con respecto al punto de registro del objeto de visualización principal.


Ejemplo

El ejemplo siguiente dibuja un objeto circular verde con una anchura y altura de 100 píxeles, 250 píxeles a la derecha del punto de registro (0, 0) del objeto de visualización Sprite.

Dibuje cuatro curvas para generar un círculo y rellénelo de verde.

Hay que tener en cuenta que, debido a la naturaleza de la ecuación cuadrática de Bézier, no es un círculo perfecto. La mejor forma de dibujar un círculo es utilizar el método drawCircle() de la clase 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);
        }
    }
}

El ejemplo siguiente dibuja una nueva luna con el método curveTo().

Se dibujan dos líneas curvas de 1 píxel y el espacio entre ellas se rellena de blanco. El método moveTo() se utiliza para colocar el dibujo actual en las coordenadas (100, 100). La primera curva mueve la posición del dibujo a (100, 200), su punto de destino. La segunda curva devuelve a la posición inicial (100, 100), su punto de destino. Los puntos de control horizontales determinan los distintos tamaños de curva.

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()método 
public function drawCircle(x:Number, y:Number, radius:Number):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Dibuja un círculo. Debe establecer el estilo de línea, el relleno o ambos antes de llamar al método drawCircle() llamando al método linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parámetros

x:Number — La ubicación x del centro del círculo con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
y:Number — La ubicación y del centro del círculo con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
radius:Number — El radio del círculo (en píxeles).

Véase también


Ejemplo
Cómo utilizar los ejemplos
Consulte el ejemplo al final de esta clase para saber cómo utilizar este método.
drawEllipse()método 
public function drawEllipse(x:Number, y:Number, width:Number, height:Number):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Dibuja una elipse. Debe establecer el estilo de línea, el relleno o ambos antes de llamar al método drawEllipse() llamando al método linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parámetros

x:Number — La ubicación x del centro de la elipse con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
y:Number — La ubicación y del centro de la elipse con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
width:Number — La anchura de la elipse (en píxeles).
 
height:Number — La altura de la elipse (en píxeles).

Véase también


Ejemplo

El ejemplo siguiente utiliza la función drawEgg() para dibujar tres huevos de distintos tamaños (tres tamaños de elipses), dependiendo del parámetro eggSize.
  1. El constructor llama a la función drawEgg() y transfiere los parámetros horizontal y vertical donde se debería dibujar el huevo, además del tipo de huevo (eggSize). (La altura y la anchura de los huevos (las elipses) se pueden utilizar para decidir dónde mostrarlos.)
  2. La función drawEgg() dibuja las elipses de distintos tamaños y las rellena de blanco con el método beginFill(). No hay una gestión de errores avanzada escrita para esta función.
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()método 
public function drawRect(x:Number, y:Number, width:Number, height:Number):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Dibuja un rectángulo. Debe establecer el estilo de línea, el relleno o ambos antes de llamar al método drawRect() llamando al método linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parámetros

x:Number — Número que indica la posición horizontal con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
y:Number — Número que indica la posición vertical con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
width:Number — La anchura del rectángulo (en píxeles).
 
height:Number — La altura del rectángulo (en píxeles).


Emite
ArgumentError — Si los parámetros width o height no son un número (Number.NaN).

Véase también


Ejemplo
Cómo utilizar los ejemplos
Consulte el ejemplo al final de esta clase para saber cómo utilizar este método.
drawRoundRect()método 
public function drawRoundRect(x:Number, y:Number, width:Number, height:Number, ellipseWidth:Number, ellipseHeight:Number):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Dibuja un rectángulo redondeado. Debe establecer el estilo de línea, el relleno o ambos antes de llamar al método drawRoundRect() llamando al método linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() o beginBitmapFill().

Parámetros

x:Number — Número que indica la posición horizontal con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
y:Number — Número que indica la posición vertical con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
width:Number — La anchura del rectángulo redondeado (en píxeles).
 
height:Number — La altura del rectángulo redondeado (en píxeles).
 
ellipseWidth:Number — La anchura de la elipse utilizada para dibujar esquinas redondeadas (en píxeles).
 
ellipseHeight:Number — La altura de la elipse utilizada para dibujar esquinas redondeadas (en píxeles). Opcional; si no se especifica ningún valor, se toma como valor predeterminado el valor proporcionado para el parámetro ellipseWidth.


Emite
ArgumentError — Si los parámetros width, height, ellipseWidth o ellipseHeight no son un número (Number.NaN).

Véase también


Ejemplo
Cómo utilizar los ejemplos
Consulte el ejemplo al final de esta clase para saber cómo utilizar este método.
endFill()método 
public function endFill():void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Aplica un relleno a las líneas y curvas añadidas desde la última llamada al método beginFill(), beginGradientFill() o beginBitmapFill(). Flash utiliza el relleno especificado en la anterior llamada al método beginFill(), beginGradientFill() o beginBitmapFill(). Si la posición de dibujo actual no es la misma que la posición anterior especificada en un método moveTo() y se ha definido un relleno, el trazado se cerrará con una línea y luego se rellenará.

Véase también

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

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica un degradado para el estilo de línea que Flash Player utiliza en las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto. El estilo de línea surtirá efecto hasta que llame a los métodos lineStyle() o lineGradientStyle() con diferentes parámetros. Puede efectuar una llamada al método lineGradientStyle() en mitad de un trazado para especificar diferentes estilos para los distintos segmentos de línea de un trazado.

Realice una llamada a lineStyle() antes de hacerlo a lineGradientStyle() para activar un trazo, pues en caso contrario el valor del estilo de línea seguirá siendo undefined.

Las llamadas a clear() volverán a establecer el estilo de línea con el valor undefined.

Parámetros

type:String — Un valor de la clase GradientType que especifica el tipo de degradado que debe utilizarse, GradientType.LINEAR o GradientType.RADIAL.
 
colors:Array — Matriz de valores de color RGB hexadecimales que se utiliza en el degradado (por ejemplo, rojo es 0xFF0000, azul es 0x0000FF, etc.).
 
alphas:Array — Matriz de valores alfa para los colores correspondientes de la matriz colors; los valores válidos van de 0 a 100. Si el valor es inferior a 0, Flash Player utiliza 0. Si el valor es superior a 100, Flash Player utiliza 100.
 
ratios:Array — Matriz de proporciones de distribución de color; los valores válidos van de 0 a 255. Este valor define el porcentaje de la anchura donde el color se muestrea al 100%. El valor 0 representa la posición izquierda del cuadro de degradado, mientras que 255 representa la posición derecha del cuadro de degradado. Este valor representa posiciones del cuadro de degradado, no el espacio de coordenadas del degradado final, que podría ser más ancho o más delgado que el cuadro de degradado. Introduzca un valor con el parámetro colors.

Por ejemplo, en el caso de un degradado lineal con dos colores, azul y verde, la siguiente figura ilustra la colocación de los colores en el degradado en función de los diferentes valores en la matriz ratios:

ratiosDegradado
[0, 127]
[0, 255]
[127, 255]

Los valores de la matriz deben aumentar secuencialmente; por ejemplo, [0, 63, 127, 190, 255].

 
matrix:Matrix (default = null) — Matriz de transformación definida por la clase flash.geom.Matrix. La clase flash.geom.Matrix incluye un método createGradientBox(), que permite configurar cómodamente la matriz para utilizarla con el método lineGradientStyle().
 
spreadMethod:String (default = "pad") — Un valor de la clase SpreadMethod que especifica el modo de extensión que debe utilizarse:

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT

 
interpolationMethod:String (default = "rgb") — Valor de la clase InterpolationMethod que especifica el valor que debe utilizarse. Por ejemplo, imagine un degradado lineal sencillo entre dos colores (con el parámetro spreadMethod definido como SpreadMethod.REFLECT). Los diferentes métodos de interpolación afectan al aspecto de este modo:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB

 
focalPointRatio:Number (default = 0) — Número que controla la ubicación del punto focal del degradado. El valor 0 significa que el punto focal está en el centro. El valor 1 significa que el punto focal se encuentra en un borde del círculo del degradado. El valor -1 significa que el punto focal se encuentra en el otro borde del círculo del degradado. Los valores menores que -1 o mayores que 1 se redondean a -1 o 1. En el ejemplo siguiente, se muestra un degradado con focalPointRatio como -0,75:

Véase también


Ejemplo

El ejemplo siguiente dibuja un rectángulo y un círculo que utiliza un trazo degradado de rojo a verde a azul.

El método createGradientBox() de la clase Matrix se utiliza para definir el cuadro de degradado en 200 de ancho y 40 de alto. El grosor de la línea se establece en 5 píxeles. El grosor del trazo se debe definir para el método lineGradientStyle(). El degradado se establece en lineal. Los colores del degradado se establecen en rojo, verde y azul. La transparencia (el valor alfa) para los colores se establece en 1 (opaco). La distribución del degradado es uniforme, donde los colores se muestrean a 100% en 0 (posición a la izquierda del cuadro degradado), 128 (mitad del cuadro) y 255 (posición a la derecha del cuadro). La anchura del rectángulo abarca todo el espectro del degradado, mientras el círculo abarca el 50% desde la mitad del espectro.

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()método 
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

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica un estilo de línea que Flash utiliza para las posteriores llamadas a otros métodos de Graphics (como, por ejemplo, lineTo() o drawCircle()) para el objeto. El estilo de línea surtirá efecto hasta que llame a los métodos lineGradientStyle() o lineStyle() con diferentes parámetros. Puede efectuar una llamada a lineStyle() en mitad de un trazado para especificar diferentes estilos para los distintos segmentos de línea del trazado.

Nota: las llamadas al método clear() volverán a establecer el estilo de línea con el valor undefined.

Parámetros

thickness:Number — Entero que indica el grosor de la línea en puntos; los valores válidos son del 0 al 255. Si no se especifica ningún número o si el parámetro no está definido (undefined), no se traza ninguna línea. Si se pasa un valor inferior a 0, el valor predeterminado es 0. El valor 0 indica grosor muy fino; el grosor máximo es 255. Si se pasa un valor superior a 255, el valor predeterminado es 255.
 
color:uint (default = 0) — Valor de color hexadecimal de la línea; por ejemplo, rojo es 0xFF0000, azul es 0x0000FF, etc. Si no se indica ningún valor, el valor predeterminado es 0x000000 (negro). Opcional.
 
alpha:Number (default = 1.0) — Número que indica el valor alfa del color de la línea; los valores válidos van del 0 al 1. Si no se indica ningún valor, el valor predeterminado es 1 (sólido). Si el valor es inferior a 0, el valor predeterminado es 0. Si el valor es superior a 1, el valor predeterminado es 1.
 
pixelHinting:Boolean (default = false) — Un valor booleano que especifica si se permite o no sugerir trazos a píxeles completos. Esto afecta a la posición de los anclajes de una curva y al tamaño propiamente dicho del trazo de la línea. Con pixelHinting definido con el valor true, Flash Player sugiere anchuras de línea que ocupen la anchura completa de los píxeles. Con pixelHinting definido con el valor false, pueden aparecer curvas y líneas rectas no conectadas. Por ejemplo, las siguientes ilustraciones muestran cómo Flash Player representa dos rectángulos redondeados idénticos, con la única diferencia de que el parámetro pixelHinting empleado en el método lineStyle() se ha definido de forma diferente (las imágenes tienen una escala del 200% para que se aprecie mejor la diferencia):

Si no se suministra ningún valor, la línea no utilizará consejos de píxeles.

 
scaleMode:String (default = "normal") — Un valor de la clase LineScaleMode que especifica el modo de escala que debe utilizarse:
  • LineScaleMode.NORMAL: siempre cambia la escala del grosor de línea cuando cambia la escala del objeto (valor predeterminado).
  • LineScaleMode.NONE: nunca cambia la escala del grosor de línea.
  • LineScaleMode.VERTICAL: no cambia la escala del grosor de línea si el objeto sólo cambia de escala verticalmente. Por ejemplo, imagine los siguientes círculos dibujados con una línea de un píxel, todos ellos con el parámetro scaleMode definido como LineScaleMode.VERTICAL. Al círculo de la izquierda sólo se le aplica escala verticalmente, mientras que al círculo de la derecha se le aplica escala vertical y horizontalmente:

  • LineScaleMode.HORIZONTAL: no cambia la escala del grosor de línea si el objeto sólo cambia de escala horizontalmente. Por ejemplo, imagine los siguientes círculos dibujados con una línea de un píxel, todos ellos con el parámetro scaleMode definido como LineScaleMode.HORIZONTAL. Al círculo de la izquierda sólo se le aplica escala horizontalmente, mientras que al círculo de la derecha se le aplica escala vertical y horizontalmente:

 
caps:String (default = null) — Valor de la clase CapsStyle que especifica el tipo de final de línea. Los valores válidos son: CapsStyle.NONE, CapsStyle.ROUND y CapsStyle.SQUARE. Si no se indica ningún valor, Flash utiliza extremos redondos.

Por ejemplo, las ilustraciones siguientes muestran los diferentes ajustes de capsStyle. Para cada ajuste, la ilustración muestra una línea azul con un grosor de 30 (a la que se aplica capsStyle) y una línea superpuesta de color negro con un grosor de 1 (a la que no se aplica capsStyle):

 
joints:String (default = null) — Valor de la clase JointStyle que especifica el tipo de junta utilizado en los ángulos. Los valores válidos son: JointStyle.BEVEL, JointStyle.MITER y JointStyle.ROUND. Si no se indica ningún valor, Flash utiliza juntas redondas.

Por ejemplo, las ilustraciones siguientes muestran los diferentes ajustes de joints. Para cada ajuste, la ilustración muestra una línea azul en ángulo con un grosor de 30 (a la que se aplica jointStyle) y una línea superpuesta de color negro en ángulo con un grosor de 1 (a la que no se aplica jointStyle):

Nota: cuando joints se define como JointStyle.MITER, puede utilizar el parámetro miterLimit para limitar la longitud del punto de esquina.

 
miterLimit:Number (default = 3) — Número que indica el límite en que se corta una esquina. Los valores posibles están comprendidos entre 1 y 255 (los valores que no estén dentro del rango se redondean a 1 o 255). Este valor sólo se utiliza si jointStyle se define como "miter". El valor de miterLimit representa la longitud con la que una esquina se puede extender más allá del punto en que las líneas se cortan para formar una unión. El valor expresa un factor del valor de thickness (grosor) de la línea. Por ejemplo, con un factor miterLimit de 2,5 y un valor thickness (grosor) de 10 píxeles, la esquina se corta a los 25 píxeles.

Por ejemplo, tenemos las siguientes líneas en ángulo, cada una dibujada con un valor thickness (grosor) de 20, pero con miterLimit definido en 1, 2 y 4. Se han superpuesto unas líneas de color negro de referencia que muestran los puntos de encuentro de las uniones:

Tenga en cuenta que un determinado valor miterLimit tiene un ángulo máximo específico en el que se corta la esquina. En la siguiente tabla, se muestran algunos ejemplos:

Valor de miterLimit:Los ángulos más pequeños se cortan:
1.41490 grados
260 grados
430 grados
815 grados

Véase también


Ejemplo
Cómo utilizar los ejemplos
Consulte el ejemplo de los métodos lineTo() o moveTo() para ver ilustraciones sobre cómo utilizar el método getStyle().
lineTo()método 
public function lineTo(x:Number, y:Number):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Dibuja una línea utilizando el estilo de línea actual desde la posición de dibujo actual hasta (x, y); la posición de dibujo actual se establece posteriormente como (x, y). Si el objeto de visualización en el que está dibujando incluye contenido creado con las herramientas de dibujo de Flash, las llamadas al método lineTo() se dibujarán debajo de este contenido. Si llama a lineTo() antes de realizar ninguna llamada al método moveTo(), la posición de predeterminada para el dibujo actual será (0, 0). Si falta alguno de los parámetros, este método fallará y la posición del dibujo actual no cambiará.

Parámetros

x:Number — Número que indica la posición horizontal con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
y:Number — Número que indica la posición vertical con respecto al punto de registro del objeto de visualización principal (en píxeles).


Ejemplo

El ejemplo siguiente dibuja un trapecio mediante el método lineTo(), comenzando por los píxeles (100, 100).

El grosor de línea se establece en 10 píxeles, el color es dorado y opaco, los extremos al final de las líneas se definen como ninguno (ya que todas las líneas están unidas), y la unión entre las líneas se establece en MITER con el límite de angular establecido en 10, para tener esquinas marcadas.

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()método 
public function moveTo(x:Number, y:Number):void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Mueve la posición de dibujo actual a (x, y). Si falta alguno de los parámetros, este método fallará y la posición del dibujo actual no cambiará.

Parámetros

x:Number — Número que indica la posición horizontal con respecto al punto de registro del objeto de visualización principal (en píxeles).
 
y:Number — Número que indica la posición vertical con respecto al punto de registro del objeto de visualización principal (en píxeles).


Ejemplo

El ejemplo siguiente dibuja una línea de puntos de un grosor de tres píxeles con los métodos moveTo() y lineTo().

Con el método lineStyle(), el grosor de línea se establece en 3 píxeles. También se establece que no se ajuste. El color se establece en rojo con una opacidad del 25%. La propiedad CapsStyle se establece en cuadrado (el valor predeterminado es redondeado).

Debido a que Graphics_moveToExample es una instancia de la clase Sprite, tiene acceso a todos los métodos de la clase Graphics. Se pueden utilizar los métodos de la clase Graphics para dibujar directamente en el objeto Sprite Graphic_moveToExample. Sin embargo, no colocar el objeto de dibujo de vectores en un Shape limita la forma en la que se gestionan, mueven o cambian.

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);
        }
    }
}
Ejemplos Cómo utilizar los ejemplos
GraphicsExample.as

En el ejemplo siguiente, se utiliza la clase GraphicsExample para dibujar un círculo, un rectángulo redondeado y un cuadrado. Esta tarea se consigue realizando los pasos siguientes:
  1. Declare una propiedad size para utilizarla posteriormente en la determinación del tamaño de cada forma.
  2. Declare propiedades que establezcan el color de fondo en naranja, el color del borde en gris oscuro, el tamaño del borde en 0 píxeles, el radio de la esquina en 9 píxeles y defina el espacio entre el borde del escenario y los demás objetos en 5 píxeles.
  3. Utilice las propiedades declaradas en los pasos anteriores junto con los métodos incorporados de la clase Graphics para dibujar el círculo, el rectángulo redondeado y el cuadrado en las coordenadas x = 0, y = 0.
  4. Vuelva a dibujar cada una de las formas en la parte superior del escenario, comenzando en x = 5, y = 5, con un espaciado de 5 píxeles entre las formas.

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);
        }
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/display/Graphics.html