ActionScript - 从实例实例化新对象?

时间:2011-03-23 14:14:42

标签: actionscript-3 class instance arguments

如何从类实例中实例化另一个类对象?

在下面的代码中(不起作用)我希望函数根据传递的参数类返回一个新的类实例。换句话说,我希望函数返回 MySprite 的新实例,而不必调用new MySprite();

var mySprite:Sprite = new MySprite();
var anotherSprite:Sprite = makeAnotherSprite(mySprite);

function makeAnotherSprite(instance:Sprite):Sprite
    {
    return new getDefinitionByName(getQualifiedClassName(instance));
    }

3 个答案:

答案 0 :(得分:3)

您的解决方案几乎可以正常运行。这是纠正的功能:

function makeAnotherSprite(instance:Sprite):Sprite
{
    var qualifiedClassName:String = getQualifiedClassName(instance);
    var clazz:Class = getDefinitionByName(qualifiedClassName) as Class; 
    return new clazz();
}

答案 1 :(得分:1)

一种替代方式,而不是你想要做的,但应该有用。

function makeAnotherSprite(instance:Sprite):Sprite
{
var myClass:Class = Object(instance).constructor; 
return new myClass();
}

答案 2 :(得分:0)

制作:

return new (getDefinitionByName(getQualifiedClassName(instance)))();

(括号中)