我打算试图找到一个有用的答案的正确轨道。
首先,看你的例子:
if (someObject == null) {
someObject = new someObject.class()
}
我不知道你要在这里表达什么。如果someObject
是null
,则无法从中提取有关任何信息。即使你键入someObject
如:
var someObject:Sprite;
您不能访问有关的事实,性质someObject
期待信息Sprite
*
*您可以使用describeType()
访问类型,如果someObject
是其成员一个班,但不要去那里。
如果你想能够:
- 检查特定类的实例存在,如果没有;
- 创建指定类的实例。
您可以编写类似:
var existing:Object = { };
function findOrMake(type:Class):*
{
var key:String = type.toString();
if(!existing.hasOwnProperty(key))
{
// We need to make a new instance of this class.
existing[key] = new type();
}
return existing[key];
}
哪些可以像使用:
var someObject:Sprite = findOrMake(Sprite); // Makes a new Sprite.
someObject = findOrMake(Sprite); // References the above Sprite.
尽管这让我头晕目眩,但我认为这正是我正在寻找的!谢谢! – theseal53 2014-10-08 18:08:19
@ theseal53我很高兴它的帮助,虽然我很好奇你为什么要这样做。这听起来像你试图实施单身模式,但以一种奇怪的方式。 – Marty 2014-10-08 20:54:44
只是抬头看单身模式...不,那不是我要去的地方。我有房间需要保留他们的属性后,他们已经进入,但在此之前,我认为实例化所有这些房间,并将其保存在内存中是没有必要的。我不知道这会如何显着提高性能(如果有的话),但我认为它仍然是一个有效的问题 – theseal53 2014-10-09 20:57:19