代码之家  ›  专栏  ›  技术社区  ›  Robin Rodricks

flash actionscript 3在actionscript 2中缺少的功能

  •  1
  • Robin Rodricks  · 技术社区  · 16 年前

    自从Adobe推出了带有FlashPlayer9的ActionScript3以来,我们中的许多人转换起来都很慢。简言之,我想知道作为一个框架,AS3可以做什么,这在AS2中是不可能的或者非常困难的。我说的不是现成的组件,而是内置的类,例如用于Web远程处理、二进制数据操作、XML处理等。

    5 回复  |  直到 16 年前
        1
  •  3
  •   back2dos    16 年前

    实际上,AS3是一种语言,而不是框架…Flash播放器API具有类似框架的特性…但好吧,我们不要争论术语…那么,FlashPlayer9中有什么酷的(除了已经提到的内容之外)?

    • 一些语言特性让你的生活更轻松 :方法闭包(不需要委托)、可选参数(与AS2可选参数相比节省了大量时间,后者更像是黑客)、实例范围解析(可以从该实例的方法中声明的匿名函数中访问实例的成员,因此不需要var self=this;)
    • 通用API设计 :API更干净,包装更合理,具有正确定义的常量(在许多类中,如 flash.filters.BitmapFilterType )并公开了很多东西,并提供了正确的错误处理
    • package flash.net :
      • Socket :实数套接字,而不是XML套接字…这允许实现任何基于TCP的协议
      • URLStream :这实际上是相当强大的,但就个人而言,我总是使用插座来代替
    • package flash.display :更干净、更一致、更细粒度(从而减少开销)…此外,您还可以最终从显示列表中删除对象,更改其父对象等。输入事件不再通过 一个 回调(有时是非常有限的),它们是以一种明智的方式触发的(在有焦点的对象上),它们是以嵌套的方式触发的 InteractiveObject S…然后显示列表上的事件冒泡…
      • Loader::loadBytes :允许在运行时使用actionscript生成SWF,并将其直接加载到播放器中,以及手动缓存。
      • Stage::frameRate :最后,您可以在运行时更改它。
      • DisplayObject::getBounds 和; DisplayObject::getRect :比摆弄这个相当于as2的愚蠢的返回值要好得多……
    • package flash.events :上面部分提到,结合DisplayObjectModel,它更干净、更强大、更可重用…干得好,真的…
    • package flash.utils :
      • ByteArray :在合理时间内操作二进制数据…这允许JPG或PNG压缩、在客户端创建PDF等
      • Dictionary :允许将对象映射到对象…这很方便(你可以把它写进AS2,但这不是你的问题,对吗?)…例如,这对于创建集合或将对象映射到处理程序等非常有用。
      • Proxy 代理类非常强大,玩起来很有趣,真的…用于代理、集合、AOP等。
      • Timer :好的,现在这可以很容易地在AS2中重新实现,但除此之外,我认为它比随意摆弄要干净得多。 setInterval
    • package flash.text :
      • TextField :更大的API,允许许多很酷的东西,例如获取字符/行度量等。
      • Font.registerFont :允许在运行时嵌入字体
      • 整体设计更为简洁有力
    • package flash.sampler :这在尝试查找瓶颈时非常有用。
    • package flash.media :更好的API,尤其是 SoundChannel SoundTransform 真的很有帮助…

    请注意,事件模型和双工列表可以在AS2中以额外的性能成本重新实现,但我认为这是关于内置功能的…

    我想,就是这样…

    尔兹

    后台操作系统

        2
  •  2
  •   Alex Jillard    16 年前

    速度是一大优势。 AS3 is much faster than AS2 . 这显然允许您进行更密集的编码/动画。

    还有一种观点认为,所有正在推出的新产品(内置3D、Pixel Bender等)都是针对AS3的,所以如果你坚持使用AS2,你已经落后于“尖端”3年左右了。

        3
  •  2
  •   Cay    16 年前

    作为一个列表:

    • 本地加载和保存
    • flash.text.engine及其所有新功能(相当大)
    • 原生2.5d(Matrix3d、透视投影等)
    • 自定义URL请求
    • 二进制数据操作(在AS2中这是非常简单的)
    • “快速”位图操作(它允许的不仅仅是AS2)
    • 自定义过滤器(像素弯曲器)
    • 新的绘图API有一些新功能
    • E4X XML
    • 炼金术
    • 反向运动学
    • DRM媒体(不确定AS2中是否有可能)

    我可能忘了很多…

        4
  •  1
  •   Ori    16 年前

    除了向更类似Java的面向对象方法(更严格)的移动之外,许多缺少的东西之一就是将阶段变成位图的能力。使用显示列表可以更好地控制电影剪辑的位置。一个例子是,如果剪辑A包含剪辑B,你可以通过代码重新排列B,使它包含A。有很多这样的东西,可以进行更多的控制。XML更易于使用,并且事件处理更符合现代语言。一个很酷的功能是能够将字节数组发送到服务器端脚本,它允许您直接从Flash将JPG、GIF和PNG保存到服务器上。

    还有更多的例子,但我现在想不出任何一个

        5
  •  1
  •   Mircea Grelus    16 年前

    彼得·埃尔斯特很好 video podcas t介绍ActionScript3中提供的功能