2008-09-29 17 views
11

Tengo una función que pasa una matriz a otra función como argumento, habrá múltiples tipos de datos en esta matriz, pero quiero saber cómo pasar una función o una referencia a una función para que la otra función pueda invocarla en cualquier momento.Pasar una función a otra función en Actionscript 3

ex.

función A:

add(new Array("hello", some function)); 

función B:

public function b(args:Array) { 
    var myString = args[0]; 
    var myFunc = args[1]; 
} 

Respuesta

6

Esto es muy fácil en ActionScript:

function someFunction(foo, bar) { 
    ... 
} 

function a() { 
    b(["hello", someFunction]); 
} 

function b(args:Array) { 
    var myFunc:Function = args[1]; 
    myFunc(123, "helloworld"); 
} 
28

Basta con pasar el nombre de función como un argumento, no, sólo como en AS2 o JavaScript?

function functionToPass() 
{ 
} 

function otherFunction(f:Function) 
{ 
    // passed-in function available here 
    f(); 
} 

otherFunction(functionToPass); 
2

Usted puede hacer lo siguiente:

add(["string", function():void 
{ 
trace('Code...'); 
}]); 

... o ...

... 
add(["string", someFunction]); 
... 

private function someFunction():void 
{ 
trace('Code...'); 
} 
Cuestiones relacionadas