7Yue's Weblog

Thinking in RIA Solutions...

导航

    毕业于七月,工作始于七月,与另一半牵手在七月......
« AIR与FP10ColdFusion8仍在是在disparate应用上求发展 »

AS3抽象类误区细节分析

事实上,此篇文章用这个题目是错误的,因为AS3中根本就不允许我们构造抽象类(Abstract Class)。
但是,此篇文章用这个题目又是正确的,因为AS3中又有仅供内部使用的抽象类。
DisplayObject/InteractiveObject/DisplayObjectContainer/Graphics就是内部使用抽象类。
抽象类的特点是不能被直接初始化,只能被Extends。于是,AS3中,如果你这样写,就会出Compile time错误,也就是第一个误区:

//错误的代码
var myDisplayObject:DisplayObject=new DisplayObject();

因为你直接初始化了一个AS3中的抽象类。跳出这个误区,你可能会认为不去初始化而是去extends一下,是可行的事情,这样你就进入了第二个误区:

//仍然是错误的
package{
  import flash.display.DisplayObject;
  public class myDisplayWindow extends DisplayObject{
    public funciton myDisplayWindow(){
    //contructor method
    }
  }
}

为什么?因为我说到了“仅供内部使用”,所以直接去extends这几个类也是会出现compile time错误。
那么如何真正的跳出误区?很简单,当需要extends这些内部抽象类时,去extends AS3中已经内部创建的真实类,比如AVM1Movie, Bitmap, InteractiveObject, MorphShape, Shape, StaticText, Video等,才是正确的方式。
而及时的查找LiveDocs也是关键。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.7 Laputa Build 70216

Copyright 2007 www.7yue.com. Some Rights Reserved.
京ICP备05064035号