У меня есть функция, которая использует аргумент ... rest следующим образом:
public function dispatchActions(... actions):void
{
var params:Object = new Object();
params.actions = actions; // I also tried casting ie. = (actions as Array)
this.target.dispatchEvent(new ActionEvent(ActionEvent.dispatchActions, params));
}
Я звоню, используя myActionObject.dispatchActions("all");
Проблема в том, что когда слушатель получает отправленный объект params и пытается получить доступ к массиву действий, он ничего не делает. Если я пытаюсь отследить evt.params.actions
, то трассировка остается пустой, а если я пытаюсь отследить evt.params.actions[0]
, она отслеживает неопределенное значение.
например:
function actionsListener(evt:ActionEvent):void
{
var actions:Array = (evt.params.actions) as Array; // I also tried without casting
trace("actions", actions, "actions 0", actions[0], "action 1", actions[1]);
}
Это вывод: действия действия 0 неопределенные действия 1 неопределенные
Что здесь не так? Я не понимаю, почему я не могу передать аргумент ... rest через объект в качестве параметра события. Как я могу сделать эту работу?
Спасибо.