ActionScript: Crear Código Reutilizable


  Share  
|


Usted desea realizar una serie de acciones en las varias horas sin código que duplica innecesariamente a través de su película.

Cree una función y después llámela (es decir, invoque) por nombre siempre que usted necesite ejecutar esas acciones.

Hay más que una forma para crear (es decir, definir o declarar) una función. Aquí es cómo crear una función nombrada:

el functionName de la función () {// las declaraciones va
aquí} para llamar (es decir, ejecútese) la función nombrada, le 
refiere por nombre, por ejemplo:
functionName();

Aquí es cómo crear un literal de la función:

functionName = función () {// las declaraciones va 
aquí};

Aunque está requerido no no terminantemente, se considera una mejor práctica de incluir un punto y coma después del apoyo rizado de cierre al definir un literal de la función.

Agrupar declaraciones en una función permite que usted defina la función una vez sino que la ejecute tantas veces pues usted quisiera. Esto es útil cuando usted necesita realizar acciones similares en las varias horas sin duplicar el mismo código en lugares múltiples. Guardar su código centralizó en funciones hace más fácil entender (porque usted puede escribir la función una vez y entonces no hacer caso de los detalles al usarla) y más fácil mantener (porque usted puede realizar cambios en un lugar más bien que en lugares múltiples).

Hay dos maneras comunes de definir las funciones de ActionScript: como las funciones o literales nombrados de la función (a.k.a. funciones anónimas). Cada uno de estas maneras de declarar una función tiene su propio uso.

El declaración nombrado de la función es la opción más común (al no definir una función que se utilizará como método) y tiene por lo menos una ventaja sobre literales de la función: las funciones nombradas son accesibles dentro del keyframe entero (o del on() o del tratante del onClipEvent()) incluso si vienen después de la llamada a la función.

Por ejemplo, aunque la función del writeMessage() no se declara hasta que después de que se invoque, la función todavía está disponible:

//invoque la función del writeMessage(), que se declara 
más adelante en el writeMessage(de la escritura);
//declare (defina) la función del writeMessage() mientras
que un writeMessage nombrado de la función de la función () 
{trace("Hello, amigo."); }
//la función está disponible antes o después de
que ha sido writeMessage(declarado);

En contraste, un literal de la función es accesible solamente de las líneas del código que vienen después del declaración:

//el intérprete de ActionScript no pueda encontrar una 
función con este nombre,// y así que nada sucede (falla 
silenciosamente). writeMessage2();
//declare (defina) la función de writeMessage2() mientras
que una función anónima literal writeMessage2 = función () 
{trace("Hello, amigo."); };
//sin embargo, la función está disponible de líneas del
código después de que haya sido writeMessage2(declarado);

Sin embargo, hay varias razones de utilizar literales de la función:

Usted puede asignar un literal de la función a una variable global para poder alcanzar la función de cualquier timeline.

Los literales de la función ofrecen una manera conveniente, compacta, e intuitiva de definir los métodos para los objetos.

Los literales de la función se pueden tratar como otras variables, en que pueden ser pasados a otras funciones o hacer sus valores reasignar.

Aquí, asignamos un literal de la función como característica _ del objeto global:

_ global.launchBookExamples = función () 
{getURL("http://www.person13.com/ascb", "_ espacio en blanco"); 
}; \

Por lo tanto, dondequiera encendido de cualquier timeline, usted puede ejecutar la función simplemente usando su nombre. Por ejemplo, usted puede ser que una esta escritura a un botón:

myButton.onRelease = función () {launchBookExamples(); 
};

Aquí, definimos la función pues un método de un clip de la película (donde onEnterFrame() es un método especial, incorporado para los clips de la película que usted necesita definir antes de que pueda ser utilizado):

myClip_mc.onEnterFrame = función () {trace("Hooray para 
los métodos!"); };

Por supuesto, usted puede definir métodos de encargo también simplemente asignando el literal de la función a una nueva característica del objeto:

myClip_mc.myCustomMethod = función () {trace("Hooray para
los métodos!"); };

Es también digno de la observación de que usted puede fijar un método igual a otro método. Esta técnica se utiliza a menudo para asignar las mismas acciones a un clip o a un botón de la película para dos diversos acontecimientos. Usted puede definir una función anónima y asignarla a uno de los métodos del tratante del acontecimiento, y después asigna simplemente un método del tratante del acontecimiento al otro. Un ejemplo común de esto es para cuando usted desea definir las mismas acciones cuando un usuario lanza un botón o un clip de la película y cuando lanzan el exterior:

//defina un método del onRelease() para un clip de la 
película myMovieClip.onRelease = función () {trace("Hooray para los 
métodos!"); };
//asigne la misma definición del método al método del 
onReleaseOutside() como bien myMovieClip.onReleaseOutside = 
myMovieClip.onRelease;

Las funciones se pueden también pasar como datos. Usted puede pasar convenientemente un literal de la función a otra función que requiera una función como una de sus discusiones, tales como setInterval() o al método de Array.sort():

//sistema un intervalo que llama una función que los 
incrementos una variable, un i, y exhibiciones// el 
setInterval(function del valor () {trace(++i);}, 1000);

Las funciones están conforme a las mismas limitaciones del alcance que variables. Las funciones de Timeline son accesibles solamente mientras que existe el timeline en el cual se definen. Una función del timeline puede ser una función nombrada o una función anónima asignada a una variable del timeline. Además, las funciones del timeline pueden ser llamadas solamente usando la trayectoria apropiada de la blanco. Cuando usted tiene acceso a la función del mismo timeline, usted no necesita incluir la trayectoria de la blanco, sino que cuando usted desea tener acceso a la función de otro timeline, usted necesita cerciorarse de usted proporcionar la trayectoria correcta.

//invoca explícitamente una función que se defina en el 
timeline. principal _ root.myFunction();

Si su función se utiliza dentro del mismo timeline solamente, usted no necesita preocuparse de ediciones del alcance. Sin embargo, si usted se prepone utilizar la función a través de muchos timelines, dos soluciones se emplean generalmente:

Defina la función como función global. Si usted hace una función una función global, usted puede llamarla por nombre de cualquier timeline en la película sin tener que preocuparse de alcance:

_ global.myFunction = función () {las funciones 
trace("Global son diversión!"); };

Defina la función como método (estático) de a de una clase global. Todas las clases incorporadas son globales por defecto, y si usted define una clase con un constructor global, después incluso sus clases de encargo pueden ser globales. Esta técnica es realmente una variación en la primera, pero con la ventaja que las clases ofrecen le a manera de organizar sus funciones de una manera potencialmente significativa (por ejemplo, la clase incorporada de la matemáticas organiza muchas funciones matemáticas).

esto es un artículo agregado por Gabriel Savimbi


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions