![]() ![]() | |
Flash Player 6.
dynamic classclassName[ extendssuperClass][ implementsinterfaceName[,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.
Palabra clave; especifica que los objetos basados en la clase especificada pueden añadir y acceder a propiedades dinámicas en tiempo de ejecución.
La verificación de tipos en estas clases no es tan estricta como en las clases no dinámicas, ya que los miembros a los que se ha accedido en la definición de clase y en las instancias de clase no se comparan con los definidos en el alcance de clase. No obstante, es posible que el tipo de las funciones de miembro de clase se verifique para el tipo de devolución y los tipos de parámetro. Este comportamiento es especialmente útil cuando se trabaja con objetos MovieClip, en los que hay varias formas de añadir propiedades y objetos a un clip de película de forma dinámica, como MovieClip.createEmptyMovieClip() y MovieClip.createTextField() .
Subclasses of dynamic classes are also dynamic.
Para más información, consulte Creación de clases dinámicas.
En el ejemplo siguiente, se ha marcado la clase B como dinámica, por lo que si se llama a alguna función no declarada en dicha clase no se generará ningún error durante la compilación.
// en B.as
dynamic class B extends class_A {
function B() {
/*this is the constructor*/
}
function m():Number {return 25;}
function o(s:String):Void {trace(s);}
}
// en C.as
class C extends class_A {
function C() {
/*this is the constructor*/
}
function m():Number {return 25;}
function o(s:String):Void {trace(s);}
}
// en otro script
var var1 = B.n(); // correcto
var var2 = C.n() // incorrecto, ya que no existe ninguna función n en C.as
![]() ![]() | |