当前位置: 首页 > 编程笔记 >

ActionScript 3 检查类型

陈斌
2023-03-14
本文向大家介绍ActionScript 3 检查类型,包括了ActionScript 3 检查类型的使用技巧和注意事项,需要的朋友参考一下

示例

您可以使用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的子类),那么您必须在方