我为添加推送方法扩展了ArrayCollection类
package com.cargo.collections
{
import mx.collections.ArrayCollection;
public class DataCollection extends ArrayCollection {
public function DataCollection(source:Array = null) {
super(source);
}
public function push(...parameters):uint {
var i:uint = source.push(parameters);
this.refresh();
return i;
}
}
}但是推送的数据是数组:/
var test:DataCollection = new DataCollection({id: 1});
test.source.push({id: 2});
test.push({id: 3});输出为
test = Array( {id: 1}, {id: 2}, Array({id: 3}) )发布于 2011-08-28 07:23:05
在您的示例中,...parameters创建了一个数组,其中包含传递给该函数的所有参数。这应该像预期的那样工作:
public function push(...parameters):uint {
var i:uint = source.push(parameters[0]);
this.refresh();
return i;
}或者,如果您的目的是启用多个参数的推送,则可以使用Function.apply()方法,该方法将给定的数组转换为多个参数:
public function push(...parameters):uint {
var i:uint = source.push.apply(null,parameters);
this.refresh();
return i;
}这相当于说
var i:uint = source.push(parameters[0],parameters[1],parameters[2]); // etchttps://stackoverflow.com/questions/7217909
复制相似问题