Red de conocimientos turísticos - Conocimientos sobre calendario chino - Por qué las clases que FlashPlayer puede iniciar deben heredar de Sprite o MovieClip

Por qué las clases que FlashPlayer puede iniciar deben heredar de Sprite o MovieClip

Compilamos una clase ActionScript3 (Class) en un swf. Si desea que FlashPlayer inicie y ejecute el swf directamente, entonces la clase debe heredar de Sprite o MovieClip.

¿Por qué?

FlashPlayer es el entorno de ejecución e intérprete de archivos swf. Estipula que la clase de inicio debe heredar de Sprite o MovieClip.

Cuando FlashPlayer ejecuta un determinado archivo swf, primero crea dinámicamente un escenario, luego busca la clase de inicio, la crea una instancia y la utiliza como miembro de la lista de visualización, que se agrega estructuralmente debajo del escenario.

Esto significa: la clase de inicio debe ser una clase de visualización (DisplayObject).

Los programas SWF tienen muchos objetos de visualización para mostrar. Por lo general, estos objetos de visualización se agregan a la lista de visualización y se agregan estructuralmente debajo del objeto de clase de inicio.

Entonces la clase de inicio debe ser un contenedor.

Siempre que cumpla con las dos características anteriores, se puede utilizar como clase de inicio.

Sabemos que en el diagrama de herencia de la clase de visualización de ActionScript3, Sprite es la clase contenedora más "original", sin concepto de línea de tiempo y con un solo fotograma, mientras que MovieClip se deriva de Sprite y tiene una línea de tiempo; Puede haber varios fotogramas.

Todas las demás clases de contenedores se derivan de una de ellas según su propósito.

Son las clases más básicas que cumplen con los requisitos de la clase startup.

Desde entonces. . .

Podemos verificar esto mediante experimentos:

============================== = =================================================== = ========

Crear proyecto ActionScript a través de FlashBuilder: startClass.

Compile el siguiente programa para obtener startClass.swf. Haga doble clic con el mouse para ejecutarlo. Verá un círculo gris que indica que el programa se ha iniciado.

Si cambia la clase base de startClass a una clase de visualización que no sea Sprite o MovieClip (como Shape), se informará un error durante la operación: TypeError: Error #2023: La clase startClass$ debe heredar Sprite que se vinculará a la raíz.

startClass.as

paquete

{

import flash.display.Shape

clase pública startClass; extiende Forma

{

función pública startClass()

{

//Dibuja un círculo

esto .graphics.clear();

this.graphics.beginFill(0x999999);

this.graphics.drawCircle(100,100,100

}

}

}