as3-从空变量中找出变量类型

问题描述

| 当未实例化变量时,是否可以找出变量类型? 我要完成的示例:
var foo:ExampleOne;
var bar:ExampleTwo;

var arr:Array = [foo,bar];

for each(var myVar:Object in arr)
{
    myClass = new getDefinitionByName( getQualifiedClassName( myVar ) ) // doesn\'t work
}
    

解决方法

        否,因为在使用\“ new \”关键字创建变量之前,变量是对在vm中未创建的对象的引用。因此,在执行此操作之前,无论您对它们执行什么操作,引用(foo / bar等)都将始终为null。     ,        我不知道您想做什么,但您可能会使用
describeType
package
{
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.utils.ByteArray;
    import flash.utils.describeType;
    import flash.utils.getDefinitionByName;


    public class TestTextfield extends Sprite
    {
        public var foo:TextField;
        public var bar:ByteArray;

        public function TestTextfield()
        {
            var arr:Array = [\"foo\",\"bar\"];

            for each(var myVar:String in arr)
            {
                var varClass : String = describeType(this)..variable.(@name == myVar).@type.toString();
                var myClass : * = new (getDefinitionByName(varClass) as Class)
            }
        }

    }
}
    ,        尝试使用\“ className \”属性。 它应根据情况返回\“ TextInput \”,\“ Button \”等。
for each (var item:* in myArray)
{
    if(item.hasProperty(\'className\'))
    {
        trace(\"item [\"+i+\"] is :\" + item[\'className\']);
    }
}
    ,        也许您想做这样的事情?
var a:Class = MyClassA; //put a reference to a Class object into \'a\' variable
var b:Class = MyClassB;

var classes:Array = [a,b];

for each(var classObj:Class in classes){
  var objInstance : * = new classObj()
}
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...