殿堂之路学习笔记(1)_第一章_AS语言基础

用一周时间看完了AcitonScript3.0殿堂之路,把笔记发上来,供大家交流。
殿堂之路学习笔记

第一章 AS语言基础

as3被重视的表现 mozilla使用as3语言引擎来开发下一代浏览器的核心js引擎     

AIR adobe integrated runtime  首次允许ria程序访问本地资源并进行离线存储

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.特色:
    1.DOM3事件模型,提供了生成和处理事件消息的一种标准方法,从而应用程序内部的对象可以交互和通讯,保持状态并对更改做出响应。
    2.显示列表API,这里面三大概念的显示对象 可交互对象 容器对象
    3.文本显示的改进,flash.text.TextField
    4.二进制的支持 ByteArray         

AS3.0程序开发工具 1.Flash CS5 fl.*  fl.controls.*  mx.*
2.Flex MXML 和 AS 相结合的Intergrated Development Enviroment  即IDE 它集成了Flex Component Kit For Flash CS3

AS3.0程序的编译流程 AS3.0代码-->AS bytecode -->  SWF文件里(标签,媒体资源,abc代码)





第二章 ActionScrtipt 语言基本元素

基元数据类型 int uint Number String 

复杂数据类型 Array Date Error Function RegExp XML 

声明和使用 var ;
var  = 10;
var h; //h为untyped
var  //g同上

命名原则 英语 骆驼 最短最多 不用数字

数据类型的另一种分类方法 值类型 引用类型

常量 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 用字符串形式返回对象的类型 
   Array Object -->object
   Boolean   -->boolean
   String --> string
   uint int Number -->number
   Function --> function
   XML XMLList --> xml
is   用来判断一个对象是否属于某种类型,是的话返回true,不是的话返回false
as  a as Array .如果一个对象是这种类型,则返回这个类型,如果不是则返回null

in 用来判断一个对象是不是作为另一个对象的键或索引,如果是的话则返回true,如果不是则返回false

delete 只可以用来删除对象的动态实例属性,非动态的属性不能删除
如果想把一个属性所持有的属性删除了,将null赋值给该属性即可




第三章 ActionScript3流程控制

if else 1.单条语句可省略花括号
2.应该把精确的范围较小的条件表达式提前 (为了让程序高效执行)

循环 while(){

}
do{

}while()



for each 和 for each in 的区别 for (var k in Object){
     这里k是键
}
for each (var k in Object){
     k这里是成员(包括键,也包括值)
}

break 用来直接跳出循环 可以用标签

continue 终止当前这一轮的循环 可以用标签 

switch  一定要加break

第四章 AS3.0中的函数和高级使用技巧

AS3中的函数分为两类 方法Method   函数闭包 (Function closures) 
如果将函数定义为类定义的一部分或者将它与某个对象绑定,则该函数称为方法。

两种定义函数方法 函数语句定义法  Function statement  这种函数在编译时会被提升 
函数表达式声明法 Function expression  var myFunction:Function = function (a:int):void{
      return a++;
}

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  父类是Function 是动态的

返回完全限定的类名称 getQualifiedClassName  
返回完全限定的基类名称 getQualifiedSuperclassName 


函数高级使用技巧 1、代理函数对象




2.  建立函数执行队列,把方法都放到一个数组里面,不太会用

根据proxyObject的情况,来选择不同函数处理目标对象 3. 利用函数返回函数 看懂了,殿堂之路P71页 chooseFuncBy(input:*):Function{} 用的是语句定义法。


4. 表达式定义,可以动态添加实例属性,比如可以用来统计方法执行了多少次。


5.表达式定义,可以动态添加实例方法,


posted @ 2011-12-31 00:21  jason_xiao  阅读(162)  评论(0编辑  收藏  举报