Definición e implementación de interfaces

El proceso de creación de una interfaz es el mismo que para crear una clase. Como ocurre con las clases, sólo puede definir interfaces en archivos de ActionScript externos. Como mínimo, este flujo de trabajo de creación de una interfaz incluye los siguientes pasos:

Debe declarar una interfaz con la palabra clave interface, seguida del nombre de la interfaz y, a continuación, llaves de apertura y cierre ({}) que definen el cuerpo de la interfaz, como se muestra en el siguiente ejemplo:

interface IEmployeeRecords {
  // declaraciones del método interface
}

Una interfaz sólo puede contener declaraciones de método (función), que incluyen parámetros, tipos de parámetros y tipos de devolución de función.

Para más información sobre convenciones de estructuración de clases e interfaces, consulte Recomendaciones y convenciones de codificación para ActionScript 2.0. Para ver un tutorial sobre la creación de una aplicación que utiliza interfaces, consulte Ejemplo: Utilización de interfaces.

Por ejemplo, el siguiente código declara una interfaz denominada IMyInterface que contiene dos métodos, method1() y method2(). El primer método, method1(), no tiene parámetros y especifica el tipo de devolución Void (lo que significa que no devuelve ningún valor). El segundo método, method2(), tiene un solo parámetro de tipo String (cadena) y especifica el tipo de devolución Boolean.

Para crear una interfaz sencilla:

  1. Cree un nuevo archivo ActionScript y guárdelo como IMyInterface.as.
  2. Escriba el siguiente código ActionScript en la ventana Script:
    interface IMyInterface {
      public function method1():Void;
      public function method2(param:String):Boolean;
    }
    
  3. Guarde los cambios en el archivo ActionScript.

    Para utilizar la interfaz dentro de una aplicación, deberá crear primero una clase que implemente la nueva interfaz.

  4. Cree un nuevo archivo ActionScript y guárdelo como MyClass.as en el mismo directorio que IMyInterface.as.
  5. En el archivo de la clase MyClass, escriba el siguiente código ActionScript en la ventana Script:
    class MyClass {
    }
    

    Para indicar a la clase personalizada (MyClass) que utilice la interfaz (IMyInterface), deberá utilizar la palabra clave implements, que especifica que una clase debe definir todos los métodos declarados en la interfaz (o interfaces) que implemente.

  6. Modifique el código ActionScript de MyClass.as (añada el código en negrita) para que coincida con el siguiente fragmento:
    class MyClass implements IMyInterface {
    }
    

    La palabra clave implements debe situarse después del nombre de la clase.

  7. Haga clic en el botón Revisar sintaxis.

    Flash muestra un error en el panel Salida que indica que MyClass debe implementar el método X de la interfaz IMyInterface. Este mensaje de error aparece porque toda clase que amplíe una interfaz debe definir cada uno de los métodos enumerados en el documento de la interfaz.

  8. Modifique de nuevo el documento MyClass (añada el código en negrita) y escriba el código ActionScript para los métodos method1() y method2(), como se muestra en el siguiente fragmento:
    class MyClass implements IMyInterface {
        public function method1():Void {
            // ...
        };
        public function method2(param:String):Boolean {
            // ...
            return true;
        }
    }
    
  9. Guarde el documento MyClass.as y haga clic en Revisar sintaxis.

    El panel Salida ya no muestra ningún mensaje de error ni ninguna advertencia porque ha definido los dos métodos.

El archivo de clase que crea no está limitado a los métodos públicos que usted define en el archivo de interfaz. El archivo de interfaz sólo esboza los métodos mínimos que debe implementar, además de las propiedades de dichos métodos y de los tipos de devolución. Las clases que implementan una interfaz concreta casi siempre incluyen métodos, variables y métodos getter y setter adicionales.

Los archivos de interfaz no pueden contener asignaciones ni declaraciones de variables. Las funciones declaradas en una interfaz no pueden contener llaves. Por ejemplo, la siguiente interfaz no se compila:

interface IBadInterface {
    // Error de compilador. no se permite especificar declaraciones de variables en las interfaces.
    public var illegalVar:String;

    // Error de compilador. no se permite especificar cuerpos de función en las interfaces.
    public function illegalMethod():Void {
    }

    // Error de compilador. Las interfaces no admiten métodos privados.
    private function illegalPrivateMethod():Void;

    // Error de compilador. Las interfaces no admiten getters/setters.
    public function get illegalGetter():String;
}

Para ver un tutorial que muestra cómo crear una interfaz compleja, consulte Ejemplo: Utilización de interfaces.

Las reglas para asignar nombres a interfaces y para almacenarlas en paquetes son las mismas que para las clases; consulte Asignación de nombre a los archivos de clases.


Flash CS3

 

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/main/00000830.html