您可以使用is运算符来验证值是否为某种类型:
var sprite:Sprite = new Sprite(); trace(sprite is Sprite); // 真正 trace(sprite is DisplayObject); // 真正, Sprite inherits DisplayObject trace(sprite is IBitmapDrawable); // 真正, DisplayObject implements IBitmapDrawable trace(sprite is Number); // 假 trace(sprite is Bitmap); // 假, Bitmap inherits DisplayObject // 但不是Sprite继承的。
此外,还有一个instanceof操作者(不建议使用),其工作几乎相同is,除了它返回false对实现的接口时检查和INT / UINT类型。
该as运营商还可以通过使用就像is操作。如果您使用诸如FlashDevelop之类的智能IDE,这将特别有用,它将为您提供显式对象类型的所有可能属性的列表。例:
for (var i:int = 0; i < a.length; i++){ var d:DisplayObject = a[i] as DisplayObject; if (!d) continue; d.//在这里获取提示 stage.addChild(d); }
要获得与is您相同的效果,可以这样写(稍微不太方便):
for (var i:int = 0; i < a.length; i++){ if (a[i] is DisplayObject != true) continue; var d:DisplayObject = a[i] as DisplayObject; stage.addChild(d); }
请记住,在使用as运算符检查条件时,将首先将给定的值转换为指定的类型,然后将检查该操作的结果是否为假,因此在将其与可能的false / NaN值一起使用时要小心:
if(false as Boolean) trace("This will not be executed"); if(false as Boolean != null) trace("But this will be");
下表显示了一些基本值和类型以及类型运算符的结果。绿色单元格将评估为true,红色单元格将评估为false,并且灰色将导致编译/运行时错误。
这一切都在actionscript 3.0中,并且是flash cs5中的代码。5.我在做一个推拉游戏,玩家推一个方块。级别最终将非常大,每个类都有许多实例,因此在舞台上用实例名称命名每个符号是不切实际的。我有这个引擎。正如我写的文件,但我不明白为什么它不起作用。这是整个类,但我试图使用的是hitTestClass函数;包裹{ } 在整个游戏中,我使用每个“块”类中的更新函数,这里是它们检查命中测
Blockly完全支持JS和Python之类的动态类型的模型,并且还包括对C / C ++之类的静态类型的模型的支持,但需要做一些额外的工作。 在这两种情况下,Blockly都可以防止构造一些非理性的组合。以下三个模块之间没有业务联系: Blockly的每种连接类型(值输入/输出,下一个/上一个语句)都可以用类型信息标记,以便显然无效的连接将拒绝连接。这为用户提供了即时反馈,并避免了许多简单的错误
instanceof 操作符用于检查一个对象是否属于某个特定的 class。同时,它还考虑了继承。 在许多情况下,可能都需要进行此类检查。例如,它可以被用来构建一个 多态性(polymorphic) 的函数,该函数根据参数的类型对参数进行不同的处理。 instanceof 操作符 语法: obj instanceof Class 如果 obj 隶属于 Class 类(或 Class 类的衍生类),
我读过https://projectlombok.org/features/equalsandHashCode几次,从中得出了不同的结论。 下面是我正在做的一个例子来帮助澄清我的问题: GeneratorTypeB看起来与上面的代码段完全相同。现在说我有以下几点: 我用来组合集合的代码在这个设置中工作得很好,但是我要处理的数据很多,所以遇到equals方法中使用的重复的唯一标识符的几率很低,但是它
我有以下两个示例,我不清楚java.lang.Exception是如何处理的:作为检查的或未检查的异常。 以下方法编译成功: 在这里,我认为java.lang.Exception是威胁java.lang.RuntimeException或java.lang.Error。不处理也可以声明扔。 如果我们没有使用异常,而是使用了检查异常(它是java.lang.Exception的子类),那么您必须在方