殿堂之路学习笔记(1)_第一章_AS语言基础
用一周时间看完了AcitonScript3.0殿堂之路,把笔记发上来,供大家交流。
殿堂之路学习笔记
第一章 AS语言基础 | ||
as3被重视的表现 | mozilla使用as3语言引擎来开发下一代浏览器的核心js引擎
|
|
AIR | adobe integrated runtime
|
|
as3和as2的速度比较 | as3比as2快10倍 | |
开源 | avm2开源,flex开源 3D应该 Papervision 3D .开源物理引擎APE, Flex高级组件类库FlexLib |
|
AS3.0的特点 | 1.Runtime
Exception 2.Runtime Type检查 3.Sealed Class 密封类,密封类对象实例没有内部哈希表。 4.闭包方法,以前函数中this关键字无法记住自身指向的原始对象,给事件运用带来不少困扰,只能使用mx.util.Delegate类来解决,现在AS3.0使用闭包方法可以自动记起它的原始对象实例,此功能对事件处理非常有用。 5.使用E4X理论来处理XML数据 6.正则表达式 7.命名空间 public private protected internal 8.新基元数据类型 |
|
Flash Player API新特色 | 1.定义:提供给AS3.0语言的一组类和函数,用于使用flash
player的功能 2.特色: |
|
AS3.0程序开发工具 | 1.Flash CS5 fl.*
2.Flex MXML 和 AS 相结合的Intergrated Development Enviroment |
|
AS3.0程序的编译流程 | AS3.0代码-->AS bytecode
-->
|
|
第二章 ActionScrtipt 语言基本元素 | ||
基元数据类型 | int uint Number
String |
|
复杂数据类型 | Array Date Error Function RegExp
XML |
|
声明和使用 |
var var var h; var |
|
命名原则 | 英语 骆驼 最短最多 不用数字 | |
数据类型的另一种分类方法 | 值类型 引用类型 | |
常量 | 1.声明方法 const ABC:int = 1000; 2.使用原则 能使用常量则尽量使用常量 ,常量只能保证持有的引用不变,并不能保证引用对象自身的状态不发生改变。 |
|
布尔值的默认值是 | false |
|
int uint Number的使用方法 | int正负值都有,uint正整数,Number小数点。 |
|
数字运算的一一些规律 | 1.小数相加不一定是整数 2.数值相差太多的浮点数相加减,会有偏差 |
|
Number的默认值 | NaN | |
String的默认值 | null | |
Boolean的 | false | |
Array的 | null | |
Object的 | null | |
int uint |
0 | |
未声明对象类型的 | undefined | |
比较的一些规律 | 1.对于===运算符,不同类型间用全等运算符比较一定会返回false ,但它对int
uint Number一视同仁 2.当两边运算对象的值都是Number用为NaN时, 比较结果为false 3.当undefined null 比较时,用==则结果为true,用===则结果为false |
|
要多用 &
|| |
||
三元运算符 | ||
类型判断 | typeof
用字符串形式返回对象的类型 is as |
|
in | 用来判断一个对象是不是作为另一个对象的键或索引,如果是的话则返回true,如果不是则返回false | |
delete | 只可以用来删除对象的动态实例属性,非动态的属性不能删除 如果想把一个属性所持有的属性删除了,将null赋值给该属性即可 |
|
第三章 ActionScript3流程控制 | ||
if else | 1.单条语句可省略花括号 2.应该把精确的范围较小的条件表达式提前 (为了让程序高效执行) |
|
循环 | while(){ } do{ }while() |
|
for each 和 for each in 的区别 | for (var k in Object){ } for each (var k in Object){ } |
|
break | 用来直接跳出循环 可以用标签 | |
continue | 终止当前这一轮的循环
可以用标签 |
|
switch |
一定要加break | |
第四章 AS3.0中的函数和高级使用技巧 | ||
AS3中的函数分为两类 | 方法Method 如果将函数定义为类定义的一部分或者将它与某个对象绑定,则该函数称为方法。 |
|
两种定义函数方法 | 函数语句定义法 函数表达式声明法 Function expression } |
|
apply的用法 | a.apply(b) ,把b作为a的this.
或者说把a的关键字this指向绑定到obj上 |
|
对函数参数的限制 | 参数的个数和类型必须和定义时相符 | |
传参 | 如果参数是基元数据类型,那么可以看成是传值,如果不是,则可以看成是传引用 | |
arguments两个属性 | length callee指向当前函数的引用 | |
...rest | 如果这些定义function
testA(arg:String,...rest):void{ rest是全部参数的数组,不能再用arguments了 |
|
函数语句定义法定义的函数的本质 函数表达式定义法定义的函数的本质 |
本质是MethodClosure 父类是Function
不是动态的 本质是Function-1 返回完全限定的类名称 返回完全限定的基类名称 |
|
函数高级使用技巧 | 1、代理函数对象 |
|
2.
|
||
根据proxyObject的情况,来选择不同函数处理目标对象 | 3. 利用函数返回函数 看懂了,殿堂之路P71页 chooseFuncBy(input:*):Function{} 用的是语句定义法。 | |
4. 表达式定义,可以动态添加实例属性,比如可以用来统计方法执行了多少次。 | ||
5.表达式定义,可以动态添加实例方法, | ||