精华网络内容 :http://www.qqread.com/network/
随着Flash CS3正式版的发布,估计很多朋友都开始从AS2迁移到AS3了。
不过AS3比AS2改变的实在太多,在as2中很多方法属性在as3中并不相同,甚至消失,而且目前帮助文档是E文的,现下的as3基础文章也并不多,因此特开此贴,集合一些基础性的要点,尽量以例子来说明,让大家更快更好的往AS3迁移。文中如有错误,敬请指正。有兴趣的朋友也可以一起来添加。1、常量
先看AS2代码:var str:String;
var num:Number;
var boo:Boolean;
var obj:Object;
var notyped;
trace(str+newline+num+newline+boo+newline+obj+newline+notyped);
//return
undefined
undefined
undefined
undefined
undefined
var str:String;
var num:Number;
var boo:Boolean;
var obj:Object;
var notyped;
trace(str+"\n"+num+"\n"+boo+"\n"+obj+"\n"+notyped);
//return
null
NaN
false
null
undefined
从上面2个例子可以清楚的看到:在as2中String、Number、Boolean、Object 的默认值都是undefined,而在as3中则分别为null、NaN、false、null。只有未作申明的变量的默认值才是undefined。因此,在as2中一个"undefined"打天下的时代已经过时了,在as3中更加明确。同时as2中还有一个常量newline 在as3中已经取消,由"\n"替换。另外特别说明就是trace 方法的功能也加强了,参数个数不限,因此上面可以改成trace(str,num,boo,obj,notyped)了。
2、操作符
这里只讨论instanceof。虽然as3中还保留了这个操作符,但as3中推荐用is代替它。而且is的用法更为灵活。代码:
var mystr:String="test";
var mytest:Test = new Test();//Test is extends SuperTest
trace(mytest instanceof SuperTest); //AS2 return false //AS3 return true
trace(mystr instanceof String);//AS2 return false
trace(mystr instanceof String);//AS3 return true
trace(mystr is String);//AS3 return true
var mytest:Test = new Test();//Test implements InterfaceTest
trace(mytest is InterfaceTest); //AS3 return true
trace(mytest instanceof InterfaceTest); //AS3 return false
至于add、eq、gt、ge、<>、and、not、or、ne、lt、le等AS1的语法在as3中统统取消了。
3、参数
在AS3中增加了一个... (rest)这样的参数。它的作用是指明函数可以接收任意多个以逗号分隔的参数。AS3代码:
function testfun1(param0, param1, ...arg)
{
trace(arg is Array,arg,arg.length);
}
testfun1("param0","param1","param2","param3");
//return: true param2,param3 2
经典论坛讨论:
http://bbs.blueidea.com/thread-2740982-1-1.html
相关专题
- 把fla文件输出成和swf一样的gif文件 (0次浏览)
- 什么是AS2.0面向对象编程 (0次浏览)
- AS3学习笔记 (0次浏览)
- Flash交互式动画之星座查询器制作 (0次浏览)
- AS3.0的类及绑定 (0次浏览)
- AS3 中的反射 (0次浏览)
- AS3 技巧和提示 (0次浏览)
- 利用引导线制作动态爱心两例 (0次浏览)
- Flash教程:AS下雨动画效果的制作 (0次浏览)
- Flash AS代码常用调试语句trace()的使用 (0次浏览)



