首页 > 其它 > ActionScript3.0是革命性的

ActionScript3.0是革命性的

2010年02月20号
查看评论 发表评论 1,051次浏览

一、全新的“显示对象”架构
  FlashPlayer9中加入了一套新的AS虚拟机器(AVM2),它提供了一套新的显示API,相对于之前的版本执行和渲染效率提高了不少。在AS3以前FLASH中的可编程的显示对象只有MovieClip和TextField,架构很简洁,他们都是直接从Object类继承的。在AS2的面向对象体系引入以后,一个MC类的属性和方法加起来近百个,目的就是为了让AS对MC的控制能够“随叫随到”,但是以牺牲效率为代价的。例如我们动态复制了几个MC到特定的坐标,而没有任何交互需求,但这些新的MC实例却依然具有了很多我们并不需要的属性和方法,因此很多编程人员都会抱怨MC是一个笨重的类。
  
  FP9中新的显示架构彻底颠覆了“MovieClip是灵魂”的设计(AS2那套东西已不再沿用了),这个重大的更新主要体现在对显示对象的抽象更细致、清晰了。简单说来从概念上划分为了显示对象、容器对象、可交互对象,在这个基础上提供了更便捷地遍历显示列表的方法,添加、删除可视元素的方法、自动化地深度管理等。
  FP9的显示层次结构

  从功能上详细提供了15个可视对象类,这就让我们能够根据实际需要选择合适的对象来实例化,而避免无用消耗。对这些显示对象的具体特性可查阅帮助文档,这是AS3显示编程的灵魂。
AS3中的核心可视类
  
  二、清晰的事件机制
  从AS2中就引入了事件侦听模型,但由于AS1和AS2编程的随意性以及AS开发人员更多的是设计转行的,很多人还是习惯使用_mc.onRelese = function(){},甚至是on(release){},这些不同实现的优劣这里就不再重复讨论了,很多文档都有详细地对比说明。正是因为事件侦听模型的巨大优势,所以在AS3中有且只有只一种事件模型,它是支持了W3C DOM3事件规范的标准,对于它提供的各种广播事件也需要熟记于心。
  在新的事件模型中,this对象能够自动找到它的原始对象实例,而不用再使用Delegate这种和怪异地方式来指定事件处理函数的上下文引用了。
  更多细节需要参阅文档,熟悉这个新的事件模型是很有必要的,对于交互编程而言,这个是重点之一。

  AS2是不支持事件流的,现在你不用再为此头疼了,因为支持事件流是AS3的事件机制的又一重大更新,对于事件流的捕获、目标、冒泡这三个过程你需要很清楚,每当你初始化一个交互元素时,你就需要在脑海中迅速地按顺序触发这些过程,这是交互编程的重点之二。

  三、更为便捷的库元件绑定和文档类绑定
  在AS2中我们如果需要重新初始化一个目标MC的实例,通常会采用duplicateMovieClip或者attachMovie来实现,但这两个实现都存在弊端和不便,局限性比较大。AS3提供了一种更便捷的方式来实例化一个目标元素的实例。在AS2的组件开发中我们通常都会使用库元件的类绑定,但在UI和程序协同、构造函数传参方面还是不太方便。而AS3中我们完全可以用AS自由控制库元素实例化到舞台上,例如:

//在库中将目标MC的导出类设置为FileUpLoad
//如果只是想显示库中元素,那么你没有必要额外建立FileUpload文件,编译器会帮你自动搞定
//在AS中实例化一个图片上传UI
var picUpload_mc = new FileUpload();
//添加到舞台上显示
stage.addChild(picUpload_mc);

  对于库绑定的细节需要详细了解,其中还涉及到一些实际问题的实现方式,例如如何在类中访问绑定库元件中的元素等。但我个人认为利用AS3提供的这一新功能,能够更好得设计程序的架构,更符合MVC的开发原则,具体实现还需要在以后的研究中来探索,也希望和大家一起交流。

  如果你接触过Flex开发,那么文档类的绑定就很熟悉了,这是FLASH开发环境所不提供的,但在FLASH CS3中提供了这一功能,目的还是规范开发。

  四、丰富的功能包支持
  就FLASH CS3开发而言,Adobe沿用了Flash之前版本的一些类库,主要都在fl.*包中,在这个基础上有更新了一些顶级包,同时又提供了一些新的包,主要都在adobe.utils中。除此以外,你还可以使用Flex作为开发平台,Flex提供了更为丰富的功能包和组件。

  五、语法特性
  AS3语法特性上也有一些变化变化,目前我针对下面几个做过测试:
  1、在Number类型的基础上,新增了int和uint类型。
  2、类型检测方面增加了is和as两个运算符,AS3提供了运行时的类型检测,在这之前只是提供编译检测。
  3、各种数据类型的值在undefined时,现在都会给一个特定的默认值(编程中需要格外小心)。 
  4、对于函数的执行,需要严格匹配参数个数,并提供了一种…(rest) 形式的参数来支持任意多参数的调用。
  5、面向对象体系更细致了,增加了包的概念,增加了inernal和final的两个修饰符,对于类中public、private、proteced的访问权限也都有变化,对于重写超类的方法需要利用override关键字做申明。  

  六、其他特性
  上面的五点是我目前接触到的,同时也是个人认为最重要、最有进步的变革,除此之外还有一些重要的变化特性,例如在二进制、socket通信、E4X、正则表达式、文本显示、全屏模式等方面也都有一定的改进,有待于在实际操作中来熟悉。

类别其它 标签
  1. 小区
    发表于 2010年03月02号 15时22分35秒 | 1楼

    小区(http://www.88471.cn)
    ↑天↑让风吹走你的忧愁↓事↓

    ↑天↑让雨洗掉你的烦恼↓事↓

    ↑开↑让太阳带给你温暖↓顺↓

    ↑开↑让月亮带给你温馨↓顺↓

    ↑心↑让爱情带给你幸福↓利↓

    ↑心↑让友谊带给你开心↓利↓

  2. 淘宝网网上购物女装
    发表于 2010年03月03号 21时25分47秒 | 2楼

    来支持下博主,加油更新,多多互动O(∩_∩)O~

  3. buy cheap generic levitra
    发表于 2010年03月04号 12时00分17秒 | 3楼

    I liked it. So much useful material. I read with great interest.

  4. buy cheap generic levitra
    发表于 2010年03月04号 16时00分47秒 | 4楼

    Interesting and informative. But will you write about this one more?

  5. erectile dysfunction treatment
    发表于 2010年03月05号 09时54分43秒 | 5楼

    I really like your blog and i respect your work. I’ll be a frequent visitor.

  6. generic prescription drugs
    发表于 2010年03月08号 18时31分49秒 | 6楼

    In truth, immediately i didn’t understand the essence. But after re-reading all at once became clear.

  7. cheap lacoste shoes
    发表于 2010年06月21号 19时02分55秒 | 7楼

    your words ring true like a crystal bell.

  8. 2010 New Herve Leger Dress
    发表于 2010年06月22号 17时22分15秒 | 8楼

    Believing in the impossible. From this article I feel my dreams and my responsibility.

  9. puma future cat
    发表于 2010年06月24号 11时40分44秒 | 9楼

    You are so right… God bless you for what you wrote.

  10. nike air max 2009
    发表于 2010年06月26号 18时23分51秒 | 10楼

    I am really so used to read.

  11. cheap nba basketball shoes
    发表于 2010年06月29号 18时01分53秒 | 11楼

    wooow!! the pen and the ink and the words of wisdom

  12. ghd mk4 styler
    发表于 2010年07月10号 15时30分48秒 | 12楼

    I love this post!

  13. nhl hockey jerseys
    发表于 2010年07月17号 17时55分12秒 | 13楼

    Many times I’ve read you and thought that I agree to many of your views and ways.

  14. Nike Air Jordan Shoes On Sale
    发表于 2010年07月19号 15时33分49秒 | 14楼

    Thanks, have responded.

  15. Lacoste T-Shirts
    发表于 2010年07月19号 15时53分32秒 | 15楼

    This is something that I have been pondering. Love and beautiful light to you all,

评论页数:
你必需 登陆 才能发表评论.