Todo lo que quería hacer con Actionscript 3

Una gran novedad introducida con ActionScript 3.0 consiste en ser capaz de enumerar todos los objetos (incluyendo forma dibujada en el momento) presentes en un recipiente ( DisplayObjectContainer ). De hecho, fue ahora que Adobe introdujo esta característica. Siempre me había quejado de la falta, sobre todo porque va a depurar el entorno de Flash fue capaz de llevar a cabo en silencio, pero se mantuvo fuera de nuestro alcance a partir del código!

En ActionScript 1.0 y 2.0, no se podía acceder a algunos objetos, tales como formas vectoriales, elaborado en la herramienta de autoría Flash. En ActionScript 3.0, puede acceder a todos los objetos en la lista de visualización, ya sea los creados en ActionScript que los realizados con la herramienta de edición de Flash.

Esta característica no se puede subestimar. En versiones anteriores de ActionScript, de hecho, biosgnava realizar un seguimiento de los objetos de una manera artificial, tablero mediante una matriz, por ejemplo. Además, todavía era posible acceder a los objetos dibujados directamente en el IDE de Flash. Ahora usted puede "desplazarse" en todo el árbol jerárquico de una identificación sencilla y rápida de los objetos, y luego todos los elementos que lo componen, de forma que TextField.

Algunos de los nuevos métodos y propiedades (puesta a disposición por el objeto DisplayObjectContainer ) que permiten esto son:

  • numChildren
    Devuelve el número de niños de un objeto contenedor ( DisplayObjectContainer )
  • getChildAt()
    Devuelve la instancia del objeto de visualización secundario que sale del índice especificado.
  • getChildByName()
    Devuelve el objeto de visualización secundario que sale con el nombre especificado. Si más de un objeto de visualización secundario que tiene el nombre especificado, el método devuelve el objeto primero de la lista de elementos.

Por ejemplo, a partir de la raíz de la película, el siguiente código nos da el número de objetos en el escenario:

1
this . numChildren ) ; trace (numChildren this.);

Este bucle simple lista de todos los "nombres" de los objetos en el escenario:

1
2
3
4
5
6
: DisplayObject ; // generico hijo var: DisplayObject / / Genérico
var i : uint = 0 ; i < this . numChildren ; i ++ ) { for (var i: uint = 0; i <este numChildren; i + +). {
getChildAt ( i ) ; = Contenedores secundarios getChildAt (s).;
child . name ) ; trace (nombre child.);

}

Tratar de sacar algo en el escenario con el dibujo glistrumeti proporcionada por el IDE de Flash y ejecutar este código:

1
2
3
4
5
: DisplayObject ; // generico hijo var: DisplayObject / / Genérico
var i : uint = 0 ; i < this . numChildren ; i ++ ) { for (var i: uint = 0; i <este numChildren; i + +). {
getChildAt ( i ) ; = Contenedores secundarios getChildAt (s).;
rotation = 20 ; . niño de rotación = 20;
}

Gran forma de objetos IDE también pueden acceder y modificar en tiempo de ejecución, la primera cosa prácticamente imposible, a menos que se transformaron en MovieClip con un nombre de instancia!

Entonces lo interesante es la capacidad de identificar los objetos que nos interesan por el operador is . Por ejemplo, se puede identificar un objeto (o símbolo) es el nombre del tipo. A menudo, cuando un símbolo es creado por el nombre de la biblioteca en tiempo de ejecución no tiene sentido (instance3) y es útil para poder identificar el tipo:

1
2
3
4
5
6
7
: DisplayObject ; // generico hijo var: DisplayObject / / Genérico
var i : uint = 0 ; i < this . numChildren ; i ++ ) { for (var i: uint = 0; i <este numChildren; i + +). {
getChildAt ( i ) ; = Contenedores secundarios getChildAt (s).;
child is TextField ) { si (el niño es TextField ) {
/ / Hacer algo ...
}
}

Lo interesante es que si hemos exportado una clase MovieClip de la biblioteca mediante la creación de nuestra propia CMiaClasse podemos escribir:

1
2
3
4
5
6
7
: DisplayObject ; // generico hijo var: DisplayObject / / Genérico
var i : uint = 0 ; i < this . numChildren ; i ++ ) { for (var i: uint = 0; i <este numChildren; i + +). {
getChildAt ( i ) ; = Contenedores secundarios getChildAt (s).;
child is CMiaClasse ) { si (el niño es CMiaClasse) {
/ / Hacer algo ...
}
}

Este personaje es muy útil y permite un control casi total sobre los casos, especialmente cuando usted tiene que crear la función de "descargar" los objetos que ya no son necesarios! Por ejemplo, aquí es la forma de "desaparecer" a la forma a mano:

1
2
3
4
5
: DisplayObject ; // generico hijo var: DisplayObject / / Genérico
var i : uint = 0 ; i < this . numChildren ; i ++ ) { for (var i: uint = 0; i <este numChildren; i + +). {
getChildAt ( i ) ; = Contenedores secundarios getChildAt (s).;
child is Shape ) this . removeChild ( child ) ; si (el niño se forma ) esta removeChild (hijo).;
}

Increíble! ;)

No hay comentarios para esta entrada

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Dejar de SOPA