ActionScript3.0是革命性的(2)
作者:LuLi 来源:SimpleLife 发布时间:2008-05-01 12:36:00
二、清晰的事件机制
从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、正则表达式、文本显示、全屏模式等方面也都有一定的改进,有待于在实际操作中来熟悉。
PS:虽然近一年没有怎么系统地做Flash的东西了,但从WEB前端的发展动态来看,Flash的交互性越来越被重视了,就目前应用而言,除了在WEB上的RIA以外,在PC桌面应用上,依托于apllo或者yahoo Widget这样的运行时环境,Flash的应用应该会更有前景,界面丰富、交互灵活、相对较低的开发门槛,这些都是他的优势所在。(手机开发没有接触,这个平台对FlashPlayer的支持版本不太清楚,但我相信只要有利益存在,技术自然会被商业驱动起来的。)
猜你喜欢
- 阅读上一章:[翻译]标记语言和样式手册 Chapter 15 为body指定样式Chapter 16 下一步现在你知道了如何使用标准改进你的
- 大家都知道索引对于数据访问的性能有非常关键的作用,都知道索引可以提高数据访问效率。为什么索引能提高数据访问性能?他会不会有“副作用”?是不是
- 最近在做搜索设计时,发现了两个容易纠结的小问题,在这里谈谈自己的一些分析。问题一:提交的关键字是哪个?凡客的这个例子中,搜索建议“时尚斜拉链
- 很久以前做的东西,发出来大家玩玩!<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
- 新年钟声刚过,淘宝新版首页全“心”上线了,这次设计大胆的将布局从 960px 伸展至 1000px,页面更通透,新首页更大范围的实践了 HT
- Function getIpvalue(clientIP)'得到客户端的IP转换成长整型,返回值getIpvalue&nb
- 众所周知,FileSystemObject(fso)组件的强大功能及破坏性是它屡屡被免费主页提供商(那些支持ASP)的禁用的原因,我整理了一
- 比如一个汉字也只会算一个字节,在排版时如果全是汉字,好说,反正没什么差别,但是如果 * 作的字符串有汉字又有英文字母时,就不方便了,以下三个函
- 最近公司有一个日文项目,由于之前使用的是自己开发的中文CMS,并没有将语言包分离,在网站建设调试过程中出现了令人头疼的乱码问题。乱码出现的原
- SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
- IIS上设置301 跳转相信大家都会,只要在网站-属性-主目录里 选择重定向URL就行了,这样整站就跳转到目标站点了,但是有个问
- 制作圆角导航其实跟制作圆角边框是一样的道理,有一种很常见的方法就是使用CSS绝对定位,切四个圆角的小图片,然后分别定位在四个角,这样就可以实
- 数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用
- 一、“无”的哲学佛家讲究“因果报应”,有果必有应。此段看似与主题没有血缘关系,实际讲的是“因”。我个人比较喜欢老子的道家思想,并喜欢以其思想
- 事件流浏览器中的事件流意味着页面上可有不仅一个,甚至多个元素响应同一个事件。而这一个或多个元素响应事件发生的先后顺序在各个浏览器(主要针对I
- 在上一期中作者向诸位简要介绍了 ASP 脚本语言之一 VBScript 的一些基本常识,本期将继续给大家讲解 VBScript 的脚本编写方
- 1) 知识准备:为了使用Perl语言去存取mSQL和MySQL数据库的内容,必须安装一些API模块,以下列出一些必须安装的模块名称说明和其下
- 只有mdf文件的数据库附加失败的修复 附加时报如下错误: 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 '
- Oracle 背景资料 在介绍 Oracle9i 之前我们先介绍一些关于Oracle 公司的资料,让各位朋友更多了解 Oracle。 197
- 一旦你已经为MySQL实例管理器设置了一个密码文件并且IM正在运行,你可以连接它。你可以使用mysql客户端工具通过标准MySQL API来