在Actionscript3中,正如标题所说,我试图通过为它创建一个接口,在一个向量中传递两种不同类型的数据。有没有人有这样做的例子?
答案 0 :(得分:2)
如果它们是不相关的对象,您可以考虑使用数组。如果你想要Vector的功能,那么你就像平时那样对待它:创建一个以接口为类型而不是最常见的基类的Vector。
var v:Vector.<IFace> = new Vector.<IFace>();
...当然,在你想要放入Vector的那些类中实现IFace
更新 - 好的,作为答案的扩展,这是一个实际的界面......
public interface IFace
{
function doSomethingAllImplementersCanDo() : Boolean;
}
...会进入名为IFace.as的文件中。实现IFace的类可能看起来像这样......
public class MonsterTruck implements IFace
{
public function doSomethingAllImplementersCanDo() : Boolean
{
return true;
}
}
...以及你程序中的其他地方......
var v:Vector.<IFace> = new Vector.<IFace>();
var mt:MonsterTruck = new MonsterTruck();
v.push( mt );
var throughIFace:IFace = v.pop();
trace( throughIFace.doSomethingAllImplementersCanDo() );
我建议您在此处查看Adobe文档:http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f41.html