Flash 是否有与 toString 相反的方法?

Does Flash have a method that does the reverse of toString?

使用 ObjectUtil 时,有一个名为 toString() 的方法,它接受一个对象。如果你给它传递一个 class 命名的 "Person" 它将 return 字符串“[class Person]”。

var person:Person = new Person();
trace(ObjectUtil.toString(person));//UPDATE I'm not using ObjectUtil.toString()

// traces [class Person]

是否有 toObject() 方法?采用相同格式的 toString 输出并创建一个实例,如下所示:

var person:Person = ObjectUtil.toObject("[class Person]");

更新:
对不起。这是不正确的。我以为我在使用 ObjectUtil.toString()。我不是。当我使用该方法时,它 return 类似于:

(com.printui.assets.skins::fontList)#0
  accessibilityDescription = ""
  accessibilityEnabled = true
  accessibilityImplementation = (null)

在我的代码中某处它是 returning "[class Person]" 就像我被描述的那样。这是行:

var currentValue:* = target[property];
popUpValueInput.text = currentValue;

我认为它使用的是 instance.toString() 但 toString() 不是 return 任何接近于此的东西:

var f:fontList = new fontList();
var f1:fontList = new fontList();
trace("" + f);
trace("" + f1);
trace(f1.toString());

结果:

fontList2
fontList5
fontList5

一般来说你应该这样做: 在你的 Person class 添加这个方法:

public function toString():String
{
    return "Person" ;
}

因此,要按名称创建 class 的实例,请使用以下代码:

var p = new (getDefinitionByName(  ObjectUtils.toString(person)))

或者它可以用作所有 classes 的一般正则表达式(感谢 1.21 吉瓦):

var p = new (getDefinitionByName( ObjectUtil.toString(Person).match(/\((.*)\)/)[1] ) );