如何通过。。。是否将rest参数数组作为flash actionscript 3中的对象属性连接到另一个函数?

如何通过。。。是否将rest参数数组作为flash actionscript 3中的对象属性连接到另一个函数?,flash,actionscript-3,Flash,Actionscript 3,我有一个函数使用。。。其余论点如下: 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 Acti

我有一个函数使用。。。其余论点如下:

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(“全部”)来调用它

问题是,当侦听器接收到已调度的params对象并尝试访问actions数组时,它什么也不做。如果我尝试跟踪
evt.params.actions
它跟踪空白,如果我尝试跟踪
evt.params.actions[0]
它跟踪未定义

例:

这是输出:操作0未定义操作1未定义

这里怎么了?我不明白为什么我不能通过考试。。。通过对象将rest参数作为事件参数。我怎样才能做到这一点

谢谢。

这对我很有用:

sample("as", "asd");
private function sample(... actions):void
{
    var o:Object = {};
    o.array = actions;
    sample1(o);
}
private function sample1(o:Object):void
{
    trace(o.array[1]);//traces asd
}
这对我很有用:

sample("as", "asd");
private function sample(... actions):void
{
    var o:Object = {};
    o.array = actions;
    sample1(o);
}
private function sample1(o:Object):void
{
    trace(o.array[1]);//traces asd
}
或者你可以这样做:
sample(“as”,“asd”);
sample("as", "asd");
private function sample(... actions):void
{
    sample1(actions);
}
private function sample1(o:Array):void
{
    trace(o[1]);//traces asd
}
私有函数示例(…操作):void
{
样本1(行动);
}
私有函数sample1(o:Array):void
{
跟踪(o[1]);//跟踪asd
}

或者您可以这样做:
示例(“as”、“asd”);
sample("as", "asd");
private function sample(... actions):void
{
    sample1(actions);
}
private function sample1(o:Array):void
{
    trace(o[1]);//traces asd
}
私有函数示例(…操作):void
{
样本1(行动);
}
私有函数sample1(o:Array):void
{
跟踪(o[1]);//跟踪asd

}

看来您的params对象未正确随事件一起发送。。。我认为
ActionEvent
是您自己的自定义事件-您是否检查过:

1) 是否正确地将
params
对象传递给事件构造函数

例如:

2) 如果要重新修补事件,是否定义了
clone
函数以确保
params
也被克隆

 override public function clone():Event{
    return new ActionEvent(type,params);
}

看起来您的params对象未正确随事件一起发送。。。我认为
ActionEvent
是您自己的自定义事件-您是否检查过:

1) 是否正确地将
params
对象传递给事件构造函数

例如:

2) 如果要重新修补事件,是否定义了
clone
函数以确保
params
也被克隆

 override public function clone():Event{
    return new ActionEvent(type,params);
}

+克隆人()是我学习AS3的一大难题。很好的答案。很可能是这样,所以我还是选择了这个答案,但实际上,这是我的错。一个愚蠢的问题,我从其他地方调用dispatchActions,并且没有传递任何参数,所以我一直在跟踪错误的参数。+1。克隆人()是我学习AS3的一大难题。很好的答案。很可能是这样,所以我还是选择了这个答案,但实际上,这是我的错。一个愚蠢的问题,我从其他地方调用dispatchActions,并且没有传递任何参数,所以我一直在跟踪错误的一个。