Comunidad de diseño web y desarrollo en internet online

Muhcas Dudaas...

Citar            
MensajeEscrito el 17 Oct 2007 03:21 pm
Hay dos maneras de definir una función en ActionScript 3.0: se puede utilizar una sentencia de función o una expresión de función. La técnica que se elija dependerá de si se prefiere un estilo de programación más estático o más dinámico


alguien me podria explicar esto de programacion estatica o dinamica?? es una forma de vida? :P
o tiene que ver con las opciones de cofiguracion de flash??

y cual es la diferencia entre una expresion de funcion y una sentencia de funcion??
para que se usa uno y el otro?? :S

Código :

//segun yo esto es un evento.. y me serviria para darle algun evento a algun objeto... 
//que tipo de funcion es esta? 
miboton_mc.addEventListener(MouseEvent.CLICk, functionnn);
function functionn(Event.MouseEvent):void
{
trace("hola");
}

// y este por que tiene aParam:String?... para que se usaria?
//y tambien que tipo de funcion es??
function traceParameter(aParam:String)
{
trace(aParam);
}
// y ni hablar de esta... que es??? 
var traceParameter:Function = function (aParam:String)
{
trace(aParam);
};



disculpen pero es que estoy muy muy muy MUUUY confundido y quiero aprender bien que es que.. y para que me servirian... sry por las molestias

thx :)

Por molko

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Oct 2007 04:54 pm
La diferencia entre una expresion de funcion y una sentencia de funcion es la siguiente:

Una sentencia de función empieza con la palabra clave function, seguida de:
■ El nombre de la función
■ Los parámetros, en una lista delimitada por comas y escrita entre paréntesis
■ El cuerpo de la función (es decir, el código ActionScript que debe ejecutarse cuando se invoca la función), escrito entre llaves.
Por ejemplo, el código siguiente crea una función que define un parámetro y después invoca la función con la cadena "hello" como valor del parámetro:

Código :

function traceParameter(aParam:String) {
     trace(aParam);
}
traceParameter("hello"); // hello


La segunda manera de declarar una función es utilizar una sentencia de asignación con una expresión de función (también se suele llamar literal de función o función anónima). Éste es un método que requiere escribir más y que se usaba mucho en versiones anteriores de ActionScript.
Una sentencia de asignación con una expresión de función empieza por la palabra clave var, seguida de:
■ El nombre de la función
■ El operador dos puntos (:)
■ La clase Function para indicar el tipo de datos
■ El operador de asignación (=)
■ La palabra clave function
■ Los parámetros, en una lista delimitada por comas y escrita entre paréntesis
■ El cuerpo de la función (es decir, el código ActionScript que debe ejecutarse cuando se invoca la función), escrito entre llaves.
Por ejemplo, el código siguiente declara la función traceParameter mediante una expresión de función:

Código :

var traceParameter:Function = function (aParam:String) {
     trace(aParam);
};

traceParameter("hello"); // hello


Ya aclarado el punto anterior, veamos tus ejemplos:

Código :

miboton_mc.addEventListener(MouseEvent.CLICk, functionnn);
function functionn(Event.MouseEvent):void{
     trace("hola");
}

Aqui estas llamando a un metodo llamado addEventListener, al cual le pasas dos parametros, que son un String, y la instancia de otra función (no es solo el nombre, es la instancia completa). Este metodo internamente manda a ejecutar la función que le pasaste como parametro, y al acer esto la ejecuta con un parametro tipo EVENTO (Event).

Por lo tanto "functionnn", NO ES un evento, ES una función tipo "Sentencia de función" que se ejecuta cuando se detecta un EVENTO, y tiene como parametro un objeto tipo EVENTO (Event).

Código :

function traceParameter(aParam:String){
     trace(aParam);
}

Aqui traceParameter también es una función tipo "Sentencia de función", la cual puedes llamar a ejecutar con la siguiente línea:

traceParameter("Hola como estas");

Como la función necesita un parametro tipo String, entonces le tienes que pasar un parametro, claro esta que el cuerpo de la función tu la defines y le puedes poner código que realmente te sirva, por ejemplo, puedes hacer una función que calcule el área de una figura, pasandole como parametros el tipo de figura y los datos que necesite para el cálculo. O puede ser algo más complicado, si sabes para que sirven las funciones ¿NO?

Código :

var traceParameter:Function = function (aParam:String){
     trace(aParam);
};

Esta es una función del tipo "expresion de funcion", y este tipo de funciones se usan solo si existe la necesidad específica de hacerlo, si no tienes necesidad entonces no lo hagas.

En el libro http://livedocs.adobe.com/flash/9.0_es/main/flash_as3_programming.pdf de Adobe
lee la sección de "Fundamentos de la utilización de funciones".

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.