DisplayObject 类是可放在显示列表中的所有对象的基类。也就是可以显示在swf舞台上面的可视对象都是继承DisplayObject,下面我们来看一张DisplayObject的子类继承类图。
DisplayObject的子类AVM1Movie,Bitmap,InteractiveObject, MorphShape, Shape,StaticText,Video;在这里将主要介绍InteractiveObject;(题外:YEAH!!也许你已经发现了,InteractiveObject才是亲妈生的,这让我想起了我学校我专业就TMD不是他妈亲生的一样….)。
InteractiveObject,查看api可知(这里非常推荐经常使用api查看,这样会有助于你那方面的提高,也许你懂的!_=)。
,InteractiveObject 类是用户可以使用鼠标和键盘与之交互的所有显示对象的抽象基类。这句话的意思就是继承自InteractiveObject,则会你会拥有与鼠标和键盘的交互功能(说白点就是呢可以和鼠标和键盘交流感情,然后。。没有然后了。。。)!are you ok?
InteractiveObject的子类是DisplayObjectContainer,SimpleButton,TextField。他们都可以使用户可以使用鼠标和键盘与之交互的所有显示对象。也就是说可以侦听addEventListener鼠标事件(MouseEvent)和键盘事件(KeyboardEvent
)。
DisplayObjectContainer 类是可用作显示列表中显示对象容器的所有对象的基类,该显示列表管理在 Flash Player 或 Adobe AIR 中显示的所有对象,子类是Loader, Sprite, Stage, TextLine。也就是说继承自DisplayObjectContainer的类对象都具有把其他显示对象添加到此容器的功能。还是那句话,需要经常查看api帮助文档。经常用到的api有addChild,addChildAt,removeChild,removeChildAt,setChildIndex等,米娜桑都可以在api中查看,很详细的哦,亲!!
SimpleButton我很少用到,就咱不介绍了,需要了解的朋友可以继续查看api文档。这里需要注意的是addChild,removeChild添加和移除的显示对象都是继承自DisplayObject,也就是说只要是继承自DisplayObject的对象,都可以在显示容器中添加或者移除。
TextField 类用于创建显示对象以显示和输入文本,SWF 文件中的所有动态文本字段和输入文本字段都是 TextField 类的实例。如果你需要创建文本文字,那么你来对地方了,使用TextField的实例可以显示你需要显示的文字,对,就是你在swf中看到的文字,我们就可以使用TextField的实例来显示它。接下来不用我多说了,你可以查看api,查看api中的实例,试着创建一些文字到swf舞台上。
Loader 类可用于加载 SWF 文件或图像(JPG、PNG 或 GIF)文件,使用
load()
方法来启动加载。被加载的显示对象将作为 Loader 对象的子级添加。YEAH!!因为Loader是继承显示对象的,我们可以把Loader的实例添加到显示列表中,就可以直接显示拉。这里就提一个经常出错的地方,当我们侦听图片或者swf文件是否被加载完成Event.COMPLETE,是不能直接使用Loader的实例去添加的。我们可以查看Loader的事件api中,是没有Event.COMPLETE的。
我们可以使用
LoaderInfo类去侦听;可以通过DisplayObject类的loaderInfo属性来引用LoaderInfo对象,或者通过Loader类的contentLoaderInfo属性来引用LoaderInfo对象。
Sprite 对象与影片剪辑类似,但没有时间轴。Sprite 是不需要时间轴的对象的相应基类,这个类使用们经常使用的,创建一个项目的时候,我们的入口类就是继承自Sprite,一般我们创建一个显示对象就需要继承Sprite。他拥有Graphics属性,所有显示对象中只有Shape和Sprite具有Graphics功能的。
Stage 类代表主绘图区。对于在浏览器中(使用 FlashPlayer)运行的 SWF 内容,Stage 表示显示 Flash 内容的整个区域。对于在 AIR 中运行的内容,每个 NativeWindow 对象都有一个相应的 Stage 对象。无法以全局方式访问Stage 对象。而是需要利用 DisplayObject 实例的
stage
属性进行访问。Stage 类具有多个始祖类 – DisplayObjectContainer、InteractiveObject、DisplayObject 和 EventDispatcher,属性和方法便是从这些类继承而来的。从这些继承的许多属性和方法不适用于 Stage 对象,或在调用 Stage 类时需要安全检查。需要安全检查的属性和方法被记录为 Stage 类的一部分。(摘自官方API,如需更详细的可以查看API)。
Bitmap 类表示用于表示位图图像的显示对象,这些图像可以是使用 flash.display.Loader 类加载的图像,位图类其实是潜力股,在他的基础上面有很大的优化空间,最直接的就是flashPlayer运行的性能。
Shape此类用于使用 ActionScript 绘图应用程序编程接口 (API) 创建简单形状。Shape 类包括
graphics
属性,该属性使您可以从 Graphics 类访问方法。Sprite 类也包括
graphics
属性,并且它包括不可用于 Shape 类的其他功能。例如,Sprite 对象是显示对象容器,而 Shape 对象不是(并且不能包含子显示对象)。由于此原因,Shape 对象会比包含相同图形的 Sprite 对象消耗的内存少。但是,Sprite 对象支持鼠标单击事件,而 Shape 对象不支持