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

ActionScript3.0是革命性的

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

一、全新的“显示对象”架构
  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. vitamins for erectile dysfunction
    发表于 2010年02月22号 03时46分29秒 | 1楼

    Very interesting and amusing subject. I read with great pleasure.

  2. 小区租房
    发表于 2010年02月22号 11时28分51秒 | 2楼

    小区租房(www.88471.cn)再次造访博主的博客,小踩一下吧,新年新气象,愿博主事事顺心~

  3. 青岛seo
    发表于 2010年02月22号 14时08分45秒 | 3楼

    青岛seo(www.qcseo.com)不错,路过小踩一下,顺祝博主新年大吉大利,欢迎回访哦~

  4. 美女
    发表于 2010年02月22号 15时02分19秒 | 4楼

    呵呵~~!

  5. 汽车票
    发表于 2010年02月22号 17时58分21秒 | 5楼

    汽车票(www.cn-piao.com)春节过去了,新的一年又开始了,让我们在新的一年共同努力吧。

  6. tandberg
    发表于 2010年02月23号 23时10分33秒 | 6楼

    博主高手,学习了!

  7. generic viagra
    发表于 2010年02月23号 23时31分15秒 | 7楼

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

  8. 淘宝购物返现
    发表于 2010年02月23号 23时40分18秒 | 8楼

    贵博客从整体布局来看,无疑是古典大家风格与后现代主义感观色彩完美结合的典范。从文章内容与行文的手法来看,既不失豪放派的大胆恢弘,又深含婉约派的柔婉细腻。总而言之,言而总之,是一个博客中的精品,精品中的博客。

  9. 门禁考勤
    发表于 2010年02月24号 10时33分53秒 | 9楼

    门禁考勤(www.china-sp.org)
    博客弄的不错啊~呵呵~看的俺心痒痒~俺也回去捣鼓捣鼓去。

  10. 发表于 2010年02月24号 10时59分22秒 | 10楼

    灯(www.goodjiancai.com)博客很精彩,学习过了,感谢博主的分享,继续更新啊,期待中。。。。

  11. 机械产品
    发表于 2010年02月24号 13时56分55秒 | 11楼

    机械产品(www.cn-products.com)
    在学习中进步~看了楼主博客,学到了不少东西~多谢多谢~呵呵~

  12. 问道推广员
    发表于 2010年02月24号 19时24分32秒 | 12楼

    不错~!

  13. discount generic viagra blue pill
    发表于 2010年02月25号 20时44分34秒 | 13楼

    Thank you! You often write very interesting articles. You improved my mood.

  14. cheap timberland
    发表于 2010年02月26号 00时26分22秒 | 14楼

    来了~踩一脚~呵呵~给你空间增添人气哦~最近还好吧~

  15. cheapest generic levitra
    发表于 2010年03月02号 11时37分16秒 | 15楼

    Are you a professional journalist? You write very well.

评论页数:
1 2 3 304
你必需 登陆 才能发表评论.