PaqueteNivel superior
Clasepublic dynamic class Class
HerenciaClass Inheritance Object

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

Un objeto Class se crea por cada definición de clase en un programa. Cada objeto Clase es una instancia de la clase Class. El objeto Class contiene métodos y propiedades estáticos de la clase. El objeto class crea instancias de la clase cuando se invoca mediante el operador new.

Algunos métodos, como flash.net.getClassByAlias(), devuelven un objeto de tipo Class. Otros métodos pueden tener un parámetro de tipo Class como, por ejemplo, flash.net.registerClassAlias().

El nombre de la clase es la referencia al objeto Class, como se muestra en este ejemplo:

 class Foo { }
 

La sentencia class Foo{} es la definición de clase que crea el objeto Class Foo. Además, la sentencia new Foo() creará una nueva instancia de la clase Foo y el resultado será de tipo Foo.

Utilice la sentencia class para declarar las clases. Los objetos Class son útiles para utilizar técnicas avanzadas, como la asignación de clases a un objeto de instancia existente en tiempo de ejecución, como se muestra en la sección "Ejemplos" incluida más abajo.

Todas las propiedades y métodos estáticos de una clase residen en el objeto Class de la clase. Class declara prototype ella misma.

Generalmente, no es necesario declarar ni crear variables de tipo Class manualmente. Sin embargo, en el código siguiente, se asigna una clase como propiedad pública de Class circleClass; puede hacer referencia a esta propiedad de Class como una propiedad de la clase principal Library:

 package {
  import flash.display.Sprite;
  public class Library extends Sprite {

   public var circleClass:Class = Circle;
   public function Library() {
   }
  }
 }

 import flash.display.Shape;
 class Circle extends Shape {
  public function Circle(color:uint = 0xFFCC00, radius:Number = 10) {
   graphics.beginFill(color);
   graphics.drawCircle(radius, radius, radius);
  }
 }
 

Otro archivo SWF puede cargar el archivo Library.swf resultante y luego crear instancias de objetos de tipo Circle. En el siguiente ejemplo se muestra una forma de obtener acceso a los activos de un archivo SWF secundario. (Otras técnicas consisten en utilizar flash.utils.getDefnitionByName() o importar definiciones stub del archivo SWF secundario.)

 package {
  import flash.display.Sprite;
  import flash.display.Shape;
  import flash.display.Loader;
  import flash.net.URLRequest;
  import flash.events.Event;
  public class LibaryLoader extends Sprite {
   public function LibaryLoader() {
    var ldr:Loader = new Loader();
    var urlReq:URLRequest = new URLRequest("Library.swf");
    ldr.load(urlReq);
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
   }
   private function loaded(event:Event):void {
    var library:Object = event.target.content;
    var circle:Shape = new library.circleClass();
    addChild(circle);
   }
  }
 }
 

En ActionScript 3.0, puede crear clases incorporadas para activos externos (como, por ejemplo, imágenes, sonidos o fuentes) que se compilan en archivos SWF. En versiones anteriores de ActionScript, dichos activos se asociaban mediante un identificador de vinculación con el método MovieClip.attachMovie(). En ActionScript 3.0, cada activo incorporado se representa mediante una clase de activo incorporado. Por consiguiente, puede utilizar el operador new para crear una instancia de la clase asociada del activo y llamar a los métodos y propiedades de dicho activo.

Ver los ejemplos

Véase también

Object.prototype
Operador new
Clases
Temas avanzados


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
 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
 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
Ejemplos Cómo utilizar los ejemplos
Class.1.as

En el ejemplo siguiente, se ilustra cómo utilizar objetos Class para posponer la decisión de qué instancia de clase crear hasta el tiempo de ejecución mediante estos pasos:
  1. Declare dos clases como ClassA y ClassB.
  2. Declare una variable de tipo Class llamada classToConstruct y una de tipo Boolean llamada chooseClassA, que se define como true en este caso, pero el código debería utilizar una expresión de prueba personalizada para definir el valor de dicha variable.
package {
    import flash.display.Sprite;

    public class ClassExample extends Sprite {
        public function ClassExample() {
            var classToConstruct:Class;
            var classInstance:Object;

            classToConstruct = ClassA;
            classInstance = new classToConstruct();
            trace(classInstance);    // [object ClassA]

            classToConstruct = ClassB;
            classInstance = new classToConstruct();
            trace(classInstance);    // [object ClassB]
        }
    }
}

class ClassA {
}

class ClassB {
}




 

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/Class.html