当前位置: 代码迷 >> Web前端 >> Sprite、MovicClip、Shape的差异
  详细解决方案

Sprite、MovicClip、Shape的差异

热度:448   发布时间:2012-09-04 14:19:30.0
Sprite、MovicClip、Shape的区别

先看下帮助文档的介绍:

Sprite:

包 flash.display
类 public class Sprite
继承 Sprite → DisplayObjectContainer → InteractiveObject → DisplayObject → EventDispatcher → Object
子类 FLVPlayback, FLVPlaybackCaptioning, MovieClip, UIComponentSprite 类是基本显示列表构造块:一个可显示图形并且也可包含子项的显示列表节点。
Sprite 对象与影片剪辑类似,但没有时间轴。 Sprite 是不需要时间轴的对象的相应基类。 例如,Sprite 将是通常不使用时间轴的用户界面 (UI) 组件的逻辑基类。

Sprite 类是 ActionScript 3.0 中新引入的类。它提供了 MovieClip 类功能的替代功能,此替代功能保留了 ActionScript 以前版本的所有功能以提供向后兼容性。

MovieClip:

包 flash.display
类 public dynamic class MovieClip
继承 MovieClip → Sprite → DisplayObjectContainer → InteractiveObject → DisplayObject → EventDispatcher → Object
子类 LivePreviewParent
MovieClip 类从以下类继承而来:Sprite、DisplayObjectContainer、InteractiveObject、DisplayObject 和 EventDispatcher。

不同于 Sprite 对象,MovieClip 对象拥有一个时间轴。

MovieClip 类的方法提供的功能与定位影片剪辑的动作所提供的功能相同。 还有一些其它方法在 Flash 创作工具的“动作”面板中的“动作”工具箱中没有等效动作。

如果修改包含补间动画的 MovieClip 对象的下列任一属性,Flash Player 便会停止该 MovieClip 对象中的播放头:alpha、blendMode、filters、height、opaqueBackground、rotation、scaleX、scaleY、scale9Grid、scrollRect、transform、visible、width、x 或 y。 但是,它不会停止在该 MovieClip 对象的任何子 MovieClip 对象中的播放头。

Shape:

包 flash.display
类 public class Shape
继承 Shape → DisplayObject → EventDispatcher → Object
通过 ActionScript 绘图应用程序编程接口 (API),可使用 Shape 类创建简单形状。 Shape 类包括 graphics 属性,该属性使您可以从 Graphics 类访问方法。

Sprite 类也包括 graphics 属性,并且它包括不可用于 Shape 类的其它功能。 例如,Sprite 对象是显示对象容器,而 Shape 对象不是(并且不能包含子显示对象)。 由于此原因,Shape 对象会比包含相同图形的 Sprite 对象消耗的内存少。 但是,Sprite 对象支持鼠标单击事件,而 Shape 对象不支持。

从中我们可以看出3者的区别如下:

1.MovieClip是动态类,Sprite和 Shape不是。

2.Sprite没有时间轴,MoveiClip有时间轴。

3.Sprite是容器,而Shape不是,Sprite和MovieClip支持鼠标点击事件,Shape对象不支持。

4.Sprite中也含有Graphic对象,这意味着,它也可以直接在其中代码绘图,MovieClip和Shape没有。

转自:http://hi.baidu.com/%C7%A7%C0%EF%C6%AE%D2%BB/blog/item/9077132f1753e6331f308914.html 谢谢
  相关解决方案