![]() ![]() ![]() | |
![]() | |
![]() | |
![]() |
Flash Player 6.
[dynamic] classclassName
[ extendssuperClass
][ implements
interfaceName
[,interfaceName
... ] ] { // la definición de clase }
Nota: para utilizar esta palabra clave, debe especificar ActionScript 2.0 y Flash Player 6 o posterior en la ficha Flash del cuadro de diálogo Configuración de publicación del archivo FLA. Esta palabra clave sólo se admite si se utiliza en archivos de script externos, no en scripts escritos en el panel Acciones.
className
El nombre completo de la clase.
superClass
Opcional; el nombre de la clase de la que className
se extiende (de la que se hereda).
interfaceName
Opcional; el nombre de la interfaz cuyos métodos debe implementar className
.
Sentencia; define una clase personalizada, que permite crear instancias de objetos que comparten métodos y propiedades que define el usuario. Por ejemplo, si está desarrollando un sistema de seguimiento de facturas, podría crear una clase de factura que definiera todos los métodos y las propiedades que cada factura debería tener. Luego podría usar el comando new factura()
para crear objetos de factura.
El nombre de la clase debe ser el mismo que el del archivo externo que contiene la clase. Por ejemplo, si asigna a una clase el nombre Student, el archivo que define la clase debe llamarse Student.as.
El nombre de la clase debe estar completo en el archivo en el que está declarada; es decir, debe reflejar el directorio en el que está almacenada. Por ejemplo, si crea una clase llamada RequiredClass, que esté almacenada en el directorio myClasses/education/curriculum, debe declarar la clase en el archivo RequiredClass.as de esta forma:
class myClasses.education.curriculum.RequiredClass { }
Por este motivo, es aconsejable planificar una estructura de directorios antes de empezar a crear clases. De otro modo, si decide mover archivos de clases después de crearlos, deberá modificar las sentencias de declaración de clases para reflejar su nueva ubicación.
Las definiciones de clase no pueden anidarse; es decir, no pueden definirse clases adicionales en una definición de clase.
Para indicar que los objetos pueden añadir y acceder a propiedades dinámicas en tiempo de ejecución, ponga la palabra clave dynamic
delante de la sentencia de clase. Para crear clases basadas en las interfaces, utilice la palabra clave implements
. Para crear subclases de una clase, utilice la palabra clave extends
. Una clase puede ampliar solamente una clase, pero puede implementar varias interfaces. Puede utilizar las palabras clave implements
y extends
en una única sentencia.
class C implements Interface_i, Interface_j // Correcto class C extends Class_d implements Interface_i, Interface_j // Correcto class C extends Class_d, Class_e // Incorrecto
Para más información, consulte Creación y utilización de clases.
En el ejemplo siguiente se crea una clase denominada Plant. Su constructor toma dos parámetros.
// Nombre de archivo Plant.as class Plant { // Definir los tipos y los nombres de propiedad var leafType:String; var bloomSeason:String; // La línea siguiente es un constructor // porque tiene el mismo nombre que la clase function Plant (param_leafType:String, param_bloomSeason:String) { // Asignar valores pasados a las propiedades cuando se crea el nuevo objeto Plant leafType = param_leafType; bloomSeason = param_bloomSeason; } // Crear métodos para volver a ejecutar los valores de propiedad, porque // se recomienda no crear referencias directamente a una propiedad de una clase function getLeafType():String {return leafType}; function getBloomSeason():String {return bloomSeason}; }
En un archivo de script externo o en el panel Acciones, utilice el operador new
para crear un objeto Plant.
var pineTree:Plant = new Plant("Perenne","N/A"); // Confirmar que los parámetros se han pasado correctamente trace(pineTree.getLeafType()); trace(pineTree.getBloomSeason());
dynamic
, extends
, implements
, import
, interface
, new
, Object.registerClass()
![]() | |
![]() | |
![]() | |
![]() ![]() ![]() |