Tap*_*nen 19 actionscript actionscript-3
我想在Actionscript 3中做类似的事情:
if(variable is Object) ...;
else ...;
Run Code Online (Sandbox Code Playgroud)
凡variable可能是String(),Number(),Array(),Object()...
目前,上述检查对所有这些类型都返回true,这是有道理的.但是,我只希望它为使用的对象返回true new Object().
任何帮助将非常感激!
Rob*_*Bak 35
你应该尝试使用这个功能 - getQualifiedClassName和typeof.下面是一个代码,显示了它们对您列出的不同数据类型的行为方式,特别是Array和Numbers的区别:
码:
var o = new Array();
trace ("var o = new Array()");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new Object();
trace ("var o = new Object();");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new String();
trace ("var o = new String()");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = new Number()
trace ("var o = new Number()");
trace (getQualifiedClassName(o));
trace (typeof(o));
var o = 3.14;
trace ("var o = 3.14");
trace (getQualifiedClassName(o));
trace (typeof(o));
Run Code Online (Sandbox Code Playgroud)
结果:
var o = new Array()
Array
object
var o = new Object();
Object
object
var o = new String()
String
string
var o = new Number()
int
number
var o = 3.14
Number
number
Run Code Online (Sandbox Code Playgroud)
我假设你正在寻找getQualifiedClassName,它位于flash utils包中:
import flash.utils.getQualifiedClassName;
Run Code Online (Sandbox Code Playgroud)
尝试基于其中一个的东西:
if (variable.constructor.toString().match(/object/i) == 'Object')
if (variable.constructor.toString().indexOf("Object") != -1)
Run Code Online (Sandbox Code Playgroud)
如果对象是Object(),那么构造函数字符串就是这样的
function Object() { ... }
Run Code Online (Sandbox Code Playgroud)
所以你可以检查一下.