Передача функции другой функции в Actionscript 3 - PullRequest
11 голосов
/ 29 сентября 2008

У меня есть функция, которая передает массив другой функции в качестве аргумента, в этом массиве будет несколько типов данных, но я хочу знать, как передать функцию или ссылку на функцию, чтобы другая функция могла вызвать ее в любое время.

ех.

функция A:

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

функция B:

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

Ответы [ 3 ]

28 голосов
/ 03 октября 2008

Просто передайте имя функции в качестве аргумента, нет, как в AS2 или JavaScript?

function functionToPass()
{
}

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

otherFunction( functionToPass );
7 голосов
/ 29 сентября 2008

Это очень просто в ActionScript:

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

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

function b(args:Array) {
    var myFunc:Function = args[1];
    myFunc(123, "helloworld");
}
2 голосов
/ 07 февраля 2011

Вы можете сделать следующее:

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

... или ...

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

private function someFunction():void
{
trace('Code...');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...