我正在做一个纯粹的AS3编程,我迫切需要使用类似ArrayList的东西,因为我需要一个对象数组(在这种情况下,数组类没用)。 但是我似乎没有可以导入的ArrayList类(Flex有但是......) 我还在互联网上找到了一个名为as3-collection的开源项目,但到底是什么?无法找到任何下载链接...
答案 0 :(得分:9)
Arrays对于对象工作得很好,但如果要严格执行数据类型,请尝试Vector
类。
答案 1 :(得分:1)
var yourArray:Array;
var yourObject:Object;
...
yourArray = [];
yourArray.push(yourObject);
是这样的吗?也许我不明白这个问题......
答案 2 :(得分:1)
如果你真的需要ArrayList的方法,你可以创建自己的实现。
ArrayList主要是一堆以Array作为后端的方法,它简化了与Array的交互,但似乎没有做到你无法用数组做的事情。
如果您正在寻找更容易的数据操作,请使用必要的方法创建自己的类。
答案 3 :(得分:0)
您似乎在寻找ArrayCollection。
如果你告诉我你想要对你的一系列物体做什么,那么我可以给你一个更简洁的方向来指导你做什么。这应该不是问题。
答案 4 :(得分:0)
我同意@Robusto:
QueryProvider
尝试更具体,如果您使用您选择的课程......
例如MyClass.as:
var ObjectsLenght:uint=10;
var vectorOfObjects:Vector.<Object> = new Vector.<Object>();
for (var i:uint=0 ;i<ObjectsLenght;i++){
var o:Object = new Object();
vectorOfObjects.push(o);
};
for (var j:uint=0 ;j<ObjectsLenght;j++){
trace("Object["+j+"] = " + vectorOfObjects[j]);
};
您现在可以使用MyClass创建Vector:
package {
public class MyClass {
var id:String;
public function MyClass(id:uint) {
this.id = "instance_of MyClass_" + id.toString()
}
public function getID():String{
return this.id;
}
}
}
只要Class扩展了Object类,并且您想要动态地更改某些属性,只需将您的类声明为动态,就像这样。
import MyClass;
var instancesLenght:uint=10;
var vectorOfMyClass:Vector.<MyClass> = new Vector.<MyClass>();
for (var n:uint=0 ;n<instancesLenght;n++){
var instance:MyClass = new MyClass(n);
vectorOfMyClass.push(instance);
};
for (var m:uint=0 ;m<ObjectsLenght;m++){
trace("MyClass["+m+"] = " + vectorOfMyClass[m] + " (" + vectorOfMyClass[m].getID() + ")");
};
然后你可以这样做:
package {
public dynamic class MyClass {
var id:String;
public function MyClass(id:uint) {
this.id = "instance_of MyClass_" + id.toString()
}
public function getID():String{
return this.id;
}
}
}
在第一种情况下,您将获得此输出:
import MyClass;
var instancesLenght:uint=10;
var vectorOfMyClass:Vector.<MyClass> = new Vector.<MyClass>();
for (var n:uint=0 ;n<instancesLenght;n++){
var instance:MyClass = new MyClass(n);
instance.nameOfInstance = "ins_" + n.toString();
vectorOfMyClass.push(instance);
};
for (var m:uint=0 ;m<ObjectsLenght;m++){
trace("MyClass["+m+"] = " + vectorOfMyClass[m] + " (" + vectorOfMyClass[m].getID() + ")" + "name = " + vectorOfMyClass[m].nameOfInstance);
};
在第二种情况下,这一次:
Object[0] = [object Object]
Object[1] = [object Object]
Object[2] = [object Object]
Object[3] = [object Object]
Object[4] = [object Object]
Object[5] = [object Object]
Object[6] = [object Object]
Object[7] = [object Object]
Object[8] = [object Object]
Object[9] = [object Object]
我希望这会有所帮助。