• action script3中的is和as运算符


    is运算符计算对象是否与特定数据类型、类或接口兼容。使用 is 运算符(而非 instanceof 运算符)进行类型比较。还可以使用 is 运算符来检查对象是否实现某个接口。其返回结果是Boolean
    package {
        
    import flash.display.*;
        
    import flash.events.IEventDispatcher;
        
    public class test extends Sprite
        
    {
            
    public function test()
            
    {
                var str:String
    =new String("strstr");
                var mySprite:Sprite
    =new Sprite();
                trace(str is Object);
    //ture
                trace(mySprite is Sprite);//ture
                trace(mySprite is IEventDispatcher); // true
                trace(mySprite is DisplayObject);    // true
                trace(test is Object);//ture
                trace(test is Class);//ture test类是一个Class对象,
                trace(String is Object);//ture Object类型是所有其他类型的基类型
                checkfun();//ture
            }

            
    public function checkfun():void
            
    {
                trace(checkfun is Function);
    //checkfun函数是Function类的一个实例
            }

        }

    }
    as运算符与is运算符相似,只是返回值不一样.
    关于Class类:
    为程序中的每个类定义创建一个 Class 对象。 每个 Class 对象都是 Class 类的一个实例。 Class 对象包含该类的静态属性和方法。 在使用 new 运算符进行调用时,Class 对象会创建该类的实例。 有些方法(如 flash.net.getClassByAlias())返回 Class 类型的对象。 其它方法可能返回 Class 类型的参数,例如 flash.net.registerClassAlias()
    该类名称是对 Class 对象的引用,如下例所示:class Foo { }
     class Foo{} 语句是创建 Class 对象 Foo 的类定义。 此外,语句 new Foo() 还将创建类 Foo 的一个新实例,其结果为 Foo 类型。
    使用 class 语句声明所需类。 Class 对象对于高级技术(例如在运行时将类赋值给现有实例对象)很有用,如以下“示例”部分所示。
    一个类的任何静态属性和方法都存在于该类的 Class 对象上。 Class 自己声明 prototype
    一般来讲,不需要手动声明或创建 Class 类型的变量。 但是,在以下代码中,一个类被赋予公共 Class 属性 circleClass,同时可以将该 Class 属性作为主 Library 类的一个属性加以引用:
    package {
        
    import flash.display.Sprite;
        
    import flash.display.Shape;
        
    public class Library extends Sprite {
            
    public var circleClass:Class = Circle;
            
    public function Library() {
            }

        }

        
    public class Circle extends Shape {
            
    public function Circle(color:uint = 0xFFCC00, radius:Number = 10){
                graphics.beginFill(color);
                graphics.drawCircle(radius, radius, radius);
            }

        }

    }

    另一个 SWF 文件可以加载生成的 Library.swf 文件,然后实例化 Circle 类型的对象。 下面的示例演示一种可以访问子 SWF 文件资源的方法。 (其它技术包括使用 flash.utils.getDefnitionByName() 或导入子 SWF 文件的存根定义。)

    package {
        
    import flash.display.Sprite;
        
    import flash.display.Shape;
        
    import flash.display.Loader;
        
    import flash.net.URLRequest;
        
    import flash.events.Event;
        
    public class LibaryLoader extends Sprite {
            
    public function LibaryLoader() {
                var ldr:Loader 
    = new Loader();
                var urlReq:URLRequest 
    = new URLRequest("Library.swf");
                ldr.load(urlReq);
                ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
            }

            
    private function loaded(event:Event):void {
                var library:Object 
    = event.target.content;
                var circle:Shape 
    = new library.circleClass();
                addChild(circle);
            }

        }

    }

    在 ActionScript 3.0 中,可以为编译到 SWF 文件中的外部资源(如图像、声音或字体)创建嵌入类。 在较早版本的 ActionScript 中,这些资源通过 MovieClip.attachMovie() 方法使用链接 ID 关联。 在 ActionScript 3.0 中,每个嵌入资源由一个唯一的嵌入资源类表示。 因此,可以使用 new 运算符实例化资源的关联类,并调用该资源上的方法和属性。
    我在乡下当农民,又学英语又耕地方,某天学会ABC,就能开拖拉机.
  • 相关阅读:
    二分查找
    【递归】N位全排列
    深度学习训练平台Polyaxon食谱 | Polyaxon使用笔记
    PAT A1149 Dangerous Goods Packaging [蜜汁模拟+STL]
    PAT A1124 Raffle for Weibo Followers [模拟+STL]
    PAT A1144 The Missing Number [模拟+STL]
    PAT A1120 Friend Numbers [模拟]
    PAT A1100 Mars Numbers [字符串处理+硬核模拟]
    PAT A1095 Cars on Campus [排序+硬核模拟]
    PAT A1113 Integer Set Partition [模拟]
  • 原文地址:https://www.cnblogs.com/chinatefl/p/1223762.html
Copyright © 2020-2023  润新知