AS3的模板(如c ++)

时间:2009-10-16 14:03:49

标签: flash actionscript-3 class templates

如何在AS3中定义类似C ++的模板?我有一个地图类(2d数组),我想在项目中重复使用,但单元格数据是一个不同的类,具体取决于项目或实现;

关于在不同的实现中共享代码还有很多其他原因,但我希望有类似的东西:

map = new MyMap<MyCell>();

如果它只是Flash 10并不重要:-p

干杯, 克里斯

2 个答案:

答案 0 :(得分:9)

没有模板,但动态类型和使用类作为值可能足以满足您的需要。

您可以创建一个接受类的类并将其存储为实例变量。

class MyMap {
 var myClass:Class;

 function MyMap(c:Class){
  myClass = c;
 }
}

然后你把课程喂给它......

map = new MyMap(MyCell); 

然后在方法中,您可以引用该类。

// Inside MyMap somewhere
var someWhatever:Object = new myClass();
// or
var someWhatever:Object = Object(myClass).someCachingSchemeStaticMethod();
// or whatever.

答案 1 :(得分:5)

您无法制作自己的模板类。您在整个AS3中唯一拥有的是Vector

在JIRA上有同样的开放feature request。随意upvote。