1

自从 Adob​​e 推出了带有 Flash Player 9 的 ActionScript 3 以来,我们中的许多人一直在缓慢地切换。简而言之,我想知道作为框架的 AS3 可以做什么,这在 AS2 中根本不可能或非常困难。我不是在谈论现成的组件,而是内置的类,例如用于 Web 远程处理、二进制数据操作、XML 处理等。

4

5 回答 5

3

好吧,实际上,AS3 是一种语言,而不是框架……Flash 播放器 API 具有类似特征的框架……但是好吧,我们不要争论术语……所以在 Flash Player 9 中有什么很酷(除了那些已经提到过)?

  • 一些让你的生活更轻松的语言特性:方法闭包(不需要 Delegate)、可选参数(与 AS2 可选参数相比节省了大量时间,这是一种 hack)、实例范围解析(你可以访问成员来自在该实例的方法中声明的匿名函数中的实例,因此不需要 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,特别SoundChannelSoundTransform非常有用...

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

我想,就是这样……

问候

back2dos

于 2009-07-19T06:00:24.760 回答
2

一个很大的优点是速度。 AS3 比 AS2 快得多。这显然允许您进行更密集的编码/动画。

还有一种说法是,所有新推出的东西(内置 3D、像素弯曲等)都是针对 AS3 的,所以如果你坚持使用 AS2,那么你已经落后于“尖端”3 年左右.

于 2009-07-12T19:17:28.393 回答
2

作为一个列表:

  • 本地加载和保存
  • flash.text.engine 及其所有新功能(相当大)
  • 原生 2.5D(Matrix3D、PerspectiveProjection 等)
  • 自定义 URL 请求
  • 二进制数据操作(在 AS2 中非常简单)
  • “快速”位图操作(它允许的比 AS2 多得多)
  • 自定义滤镜(Pixel Bender)
  • 新的绘图 API 有一些新功能
  • E4X XML
  • 炼金术
  • 反向运动学
  • DRM 媒体(不确定在 AS2 中是否可行)

我可能忘记了很多...

于 2009-07-13T11:26:09.400 回答
1

除了转向更类似于 Java 的 OO 方法(更严格)之外,缺少的许多东西之一是将舞台变成位图的能力。您可以使用显示列表更好地控制影片剪辑的位置。一个例子是,如果剪辑 A 包含剪辑 B,您可以通过代码重新排列 B,使其包含 A。有很多类似的东西可以实现更多控制。XML 更易于使用,事件处理更符合现代语言。一个很酷的功能是能够将字节数组发送到服务器端脚本,它允许您将 jpg、gif 和 png 直接从闪存保存到服务器上。

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

于 2009-07-12T18:48:38.547 回答
1

Peter Elst 有一个不错的视频播客,介绍了 ActionScript3 中可用的功能

于 2009-07-16T22:51:10.223 回答