如何通过。。。是否将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,并且没有传递任何参数,所以我一直在跟踪错误的一个。