




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/= =/:以全角星号包围的为本次更新的内容第一部分:ActionScript 3 语言基础 =第2章 ActionScript 3 语言基本元素=2.1.2 数据类型概述简单数据类型Boolean(布尔)、int(有符整型)、Number(浮点)、String(字符串)、uint(无符整型)复杂数据类型Array(数组)、Date(日期)、Error(异常)、Function(函数)、RegExp(正则表达)、XML、XMLList2.2.1 变量声明var 变量:类型var 变量:类型 = 值;/=2.2.5 基元数据类型的深入讨论*(此星号为殿堂本身章节标示 意为本章属高级内容 难度较深 建议有经验的人阅读理解)AS3中数据类型可以划分为两种,一种是值类型组成的不变对象(immutable object),一种是数组 Object类型的引用类型!所谓的不变对象意思就是忠于地址,而不是忠于引用对象!var a:uint = 1;var b:uint = 0;b = a; /这里把b的值向到a所指向的内存地址;a = 2; /这里不是修改a原来的内存了 而是生成一个副本 重新赋值为2 并把a指向新内存地址trace(a);trace(b);/直接赋值只会改变地址引用,而后续的对象更改,都是生成新的副本,而非在原有地址上进行数据的修改!/个人理解就是类似有一个连接池,里面放有很多个变量的副本,声明变量b c d e f 指向等于a的时候,它们共同引用的是一个相同的字符串 指向变量a的地址,减少副本的冗余带来的内存重复占用 这里bcdef只是一个指代 当程序中重复利用一个相同的字符串超过成千上万次的时候,这里只引用一次,效果就特别明显了!/而当一个内存地址均不被任何变量引用时/比如var a:uint = 1;a = 2;/类似这种单赋值的话,回收计数器引用为0时,内存回收机制会在适当的时候回收 原来赋值1时 占用的内存空间!/谢谢天地会群里的朋友补充,类似java中的对象池,创建的对象循环利用,不采用销毁/new的方法,而多采用init初始化,重复利用!(方便帮助理解 这里举了点不一定符合实际的例子 但大致是这样的思想!)=/2.3 声明常量const 常量名:类型 = 值;2.4 基础数据类型1.布尔值 Boolean(初始化为false)2.数字:int uint Numberint 有符号32位整数 -2(31次方) - +(2(31次方)-1)uint 无符号32位整数 0 - 2(32次方)-1Number 64位浮点能用整数优先用int uint,有正负之分,用int。只处理整数,用uint,有小数,用Number。/=2.4.5 数组:ArrayAS3中的数组是以0为起始索引的稀疏数组(sparse array),与C#等语言不同,它们变量及数组声明是 type name形式的类型化序列!比如 int IntArray10 ,声明了一个只能放整数的数组 里面有10位长度AS3中的数组每位元素没严格要求相同类型,但一般情况下我们使用时均同一时刻只存放相同类型的数据!=/2.4.6 Object及关联数组var 对象:Object = new Object()var 对象:Object = ;对象(Object)属动态类,可动态添加任意属性/方法,特别在传参时可以运用Object进行 封箱/拆箱 处理!var 对象:Object = 键:值,键:值,键:值;对象.键 = 值;当键名中包含空格等特殊字符串时,需要使用数组运算符的方式进行访问对象键 = 值;关于Object的定义 可以有几种说法,分别是对象(专指Object的定义) / 关联数组 / 匿名对象 / 对象文本(即单纯使用声明的匿名对象)/=2.4.7 多维数组AS3中多维数组的实现使用 数组元素嵌套数组元件的方法实现多维数组的效用,即:var Arr:Array = 0,1,1,3,4,6这种形式的多维数组=/2.4.8 Null、NaN、undefined及各自应用对象:变量的默认值数据类型默认值int0uint0NumberNaNStringnullBooleanfalseArraynullObjectnull没声明undefined*undefined/=除了真正未声明及*类型会显示为undefined外数值类初始值为0String Object Array类初始值为nullBoolean 初始值为 falseNumber 初始值为 NaN (Not a Number)这里科普一下关于NaN的原理,属于数据结构基础的部分,计算机储存二进制的原理知识:因为计算机存放浮点数时是采用类似 4字节byte(4*8=32位)储存一个实数时,会以3byte存放使用标准化指数(即科学记数法的个位数为0表示的小数)表示的底数,包括底数的正负号1byte存放指数,包括正负号二进制概念中 1字节(byte)有8位(bit) 底数部分 1bit指定正负 23bit(即3字节3*8-1=23)储存底数(2的23次方)指数部分 1bit指定正负 7bit储存指数因为实数初始化时计算机并不清楚最终它是储存整数还是浮点数? 3byte+1byte浮点数 或者 直接4byte的整数 1bit+31bit(2的31次方),所以才会有了NaN这个概念,Number类型数据初始化时是不定值!要判别一个Number类型变量是否为NaN,不能直接用 = NaN,要视它为一个布尔量来运算,即:if(!Number变量) 因为NaN等同null ,布尔值上为false ,!非一次 即 true= /注意:必须声明初值,否则容易出错。2.5 运算符,表达式及运用2.5.11 typeof、is、astypeof,用字符串返回对象类型,格式: typeof(对象)is ,判断操作符左边的对象是否属于右边的类型,返回值为Boolean,格式: 对象 is 数据类型as ,判断操作符左边的对象是否属于右边的类型,属于则返回数据,不属于则返回null,格式: 对象 as 数据类型typeof对象类型与返回结果对照表对象类型返回结果ArrayobjectBooleanbooleanFunctionfunctionintnumberNumbernumberObjectobjectStringstringuintnumberXMLxmlXMLListxmlArray Object一视同仁为object数值类一视同仁为numberBooleand booleanString stringFunction function2.5.12 inin ,判断操作符左边的对象是否作为右边对象中的键(Key)或索引,返回值为Boolean比如:var a:Array = q,w,e;trace(2 in a); /数组中有索引2,返回truetrace(3 in a); /数组中没有索引3,返回false2.5.13 delete关键字AS2.0中可以删除任意任意对象的delete关键字,在AS3.0中只能用于删除对象的动态实例属性,非动态属性不能删除。如果要将一个属性所持有的引用删除,使用 对象名 = null 来进行赋值操作即可。=第3章 ActionScript 3 流程控制=3.4.5 for.in和for r(var 枚举变量 in 枚举集合) /枚举变量返回为集合元素键名for each(var 枚举变量 in 枚举集合) /枚举变量返回为集合元素值for.in 和 for each均只能遍历动态类的集合3.4.7 break和continue标签的特殊用法在循环语句前用 标签: 的形式为循环体赋标签,然后就可以在break和continue语句后 加上空格+这个标签,实现控制对应循环的功能。3.5 AS3.0中switch比较默认使用 = 全等比较,switch条件不会自动执行类型转换,要注意。=第4章 ActionScript 3 中的函数及高级使用技巧=4.1.1 两种定义函数的方法函数定义式- 函数变量式函数语句定义法-函数表达式定义法函数定义式 用function开头,function 函数名()函数变量式 用 var 变量名 = function() ,即匿名函数AS编译器会优先执行定义式的函数,而变量式函数则只能先定义,后使用(与变量一样,先定义,后使用)在实现上,使用 函数定义式定义的函数,AS3是使用内部实现处理的,而函数语句定义法则是基于动态类的实现,所以函数声明不可以用赋值等号改变指向,而变量式函数定义可以使用赋值等号改变它的引用!var a:Function = function();a = bFunction; /重新指向函数引用对象变量式中this关键字绑定对象 定义式中this关键字只绑定场景var num:int = 3;function testThisA()trace(this.num)/此处输出3var testThisB:Function = function()trace(this.num)/此处输出300var Obj:Object = num:300;Obj.TestA = testThisAObj.TestB = testThisB4.2 参数4.2.1 按引用传入参数AS3.0中,所有形参均为引用传入方式,只不过,基元数据是不变对象,所以与传值方式效果一样。4.2.2 函数默认参数function 函数名(形参:类型 = 默认值)4.2.3 形式参数数组函数中默认自动生成的arguments对象中保存有所有定义中的形参参数AS2.0中的arguments数组形参对象,存放所有传入的不定个数的形参参数。而在AS3.0中,argument则被严格限定存放形参定义中所定义个数的形参。arguments对象有一个length属性和一个callee方法。function 函数名(形参:数据类型,形参:数据类型)trace(arguments.length)arguments.callee/调用函数本体,一般用于创建递归如果需要传入任意多个参数,则使用AS3.0中的rest关键字,即 .特殊关键字 .(rest)function 函数名(.参数名)/参数名可随意定义trace(参数名.length)最后要注意的,arguments与.rest关键字不能混用,使用了.rest则arguments则不能再使用第二部分:ActionScript 3 面向对象编程 /=面向对象基本没什么好说的了 靠的是自己的理解和经验,类是写出来的,不是看出来的!多点写类代码吧,不要贪懒整天写时间轴!=/=第5章 类和对象 从定义到原理=5.1 基本类结构基本结构:HelloWorldpackagepublic class Hellopublic var helloString:String = World;public function Hello()public function sayHello():voidtrace(Hello);ActionScript3中的类如果想被外部访问,必须放在package(包)中构造函数与类名相同,为与其它类内函数区分,一般首字母大写。5.2 Class(类)和Object(对象)类是对象结构的描述。5.3 Class的成员ActionScript3中的Class(类)的构成Class的名称和包路径构造函数属性:包括实例属性和静态静态属性方法:包括实例方法和静态方法AS3中对类的默认访问控制是internal(包内可见),而非AS2.0中的public5.4 Class和object的创建和使用5.4.1 创建Class参看5.1 基本类结构5.4.2 创建类的实例import 包路径.类名/相同包下,不用import类名,可直接引用var 对象 = new 类()var 对象:类 = new 类() /推荐new 关键字后跟的其实不是类名,而是类的构造函数5.5 Class和package(包)package格式:package 项目根.包路径比如:package com.kinda.book.display类名统一用大写字母开头,包路径统一用小写类体结构安排:package 包名import 类包;public class 类/private 静态属性/private 静态方法/private 实例属性/构造函数/实例方法/静属 静方 实属 构函 实方,声明类内数据的五个顺序public function 构造函数()/函数代码5.6 实例属性和实例方法实例属性和实例方法类似于动态网页语言中的session,不同的类实例(对象)中的实例属性可以有不同值 。5.6.1 实例属性访问控制符 var 属性名:数据类型;访问控制符 var 属性名:数据类型 = 值;访问控制符可以是 internal public private protect 或者自定义的namespace标识默认为internal - 包内成员可以访问,包外不可访问5.6.2 实例方法访问控制符 function 方法名(形参):返回值类型/方法内容 5.6.3 访问实例属性和实例方法使用new 语法实例化对象后,对象.属性|方法名也可以使用对象属性名对象方法名()来访问对象的属性和方法,同时也可以动态组合属性或方法,动态访问5.7 静态属性和静态方法静态属性和静态方法类似于动态网页语言中的Application,不同的类实例(对象)间共享类中共同的属性和方法。声明静态属性:static var 属性:数据类型;static var 属性:数据类型 = 值;public static var 属性:数据类型;public static var 属性:数据类型 = 值;不加访问控制符时,默认同样是internal如果要声明静态常量,需要配合使用 static 和 conststatic const 属性:数据类型 = 值;静态方法:同样是使用static关键字访问控制符 static function 方法名(形参):返回值类型/方法内容5.7.3 访问静态属性和静态方法类名.属性类名.方法例:Math.floorMath.PI在类中,实例方法可以直接用静态属性及方法名(不用加类前缀)来直接访问静态属性及方法,但为了避免与类内成员变量冲突,访问静态属性及方法时,即使在类体内访问也最好用 类名.属性 这样的格式来写5.7.4 应用1:使用静态属性集中管理数据public static const PI:Number = 3.141592653589793;比如事件定义,一般都是使用静态属性的,那我们使用中文来定义属性,就可以在代码中使用中文事件了比如:public static const 播放:String = play;使用事件时就可以用 对象.播放 来实现代码的中文化了5.7.5 应用2:使用静态属性部分实现Enumeration(枚举) final声明类不可继承,static声明常量不可改写5.7.6 应用3:实现工具类如:Math String等类5.8 构造函数定义:构造函数用于创建对象时供系统自动调用的函数,实现数据的初始化操作格式:public 类名(形参)/构造函数名与类名相同,首字母大写,以与其它函数等区分/形参中同样可以使用.rest运算符载入不同个数的参数,实现类似重载的功能/=5.8.2AS3中规定构造函数的访问权限只能是public,这意味着as3中默认不支持构造函数私有化的操作!=/5.8.3 构造函数的返回类型构造函数只能返回undefined值,所以return没意义。但return可以影响构造函数向下执行代码的顺序,遇到return时,其下的代码将终止执行。return在函数中本来就是类似VB中的 exit.Function Exit.Sub的作用,强制结束函数执行流程!5.9 Clas的种类:动态类和密封类密封类在运行时不能动态添加属性或方法。动态类在运行时可以动态添加属性或方法。默认声明的类为静态类,动态类在class关键字前有 dynamic 关键字注意:AS3.0中的 for.in循环, for each.in循环只能遍历动态类对象的动态属性5.10 this关键字 略主要针对类内实例对象引用自身或将自身引用传给第三方方法进行处理时使用!5.11 ActionScript3中的方法重载public 类名(.rest):*/根据传入的函数个数进行处理/不支持不同类型参数的区分作为重载的标准5.12 含有多个类的ActionScript3 类文件的标准例子(1)每个AS3的Class都必须写个一个和类同名的.as文件中(2)package包体括号内只能定义一个Class(3)在package包体中定义的Class,必须与类文件名相同(4)在package包体括号外还可以定义其它类,这种类,叫包外类,只能被当前as文件中的成员类访问=第6章 ActionScript3中的封装:类的成员、类、包与访问控制=/=这里也没什么好说的了 如果是有经验 明白的人就会发自内心做一句笔记 基于接口编程=/公认OOP的三大要素为:封装、继承、多态6.1 什么是封装 概括封装(encapsulation),又叫隐藏实现(hiding the implementation),具体的意思是将实现的细节隐藏起来,只将必要的功能接口对外公开。打个比喻就是汽车,用户只需要知道踏油门就会加油,打方向盘就会转向,至于汽车内部的实现细节,用户不用知道,而这些细节,就是属于封装了。在ActionScript3.0中,使用 访问控制说明符 来控制代码的可见度。访问控制说明符从“毫无限制”到“严格限制”的顺序是:public完全公开protected在private的基础上,允许子类访问internal包内可见private类内可见 引用原话: 一个好的OOP程序,就像人开汽车那样,对象和对象之间的交流只限于公开的接口。 好的OOP程序,没有流程执行先后的概念,只有代码单元之间如何相互交流和协同工作 的模式。这些代码单元,又被称为模块。模块在代码中的表现形式是一个单独的类或多个类。这些类共同协作,提供一种或多种服务。 那么如何让一部分接口暴露呢? 如何隐藏不对外公开的方法呢?使用访问控制说明符,这是实现封装的一个重要方法。 ActionScript3使用访问控制说明符来告知外部使用者,本代码单元有哪些成员可以被 外部访问到,哪些不能被访问到。将访问控制符从“毫无限制”到“严格限制” 排一下序:public、protected、internal和private。这些访问控制符,清楚明白地描述了每个部分的访问权限。一个优秀的OOP程序,会尽可能将单个代码单元的细节隐藏起来。换句话说,就是尽可能不要对外公开代码单元的成员。顺便说一句,不少OOP 程序员最喜爱private关键字,因为这意味着最大的修改自由。很有意思,在OOP编程中, 你对代码单元访问控制得越严格,日后你对代码修改的自由越大。 6.2 为什么需要封装6.2.1 封装使修改代码更加容易和安全封装使程序员在后期修改代码或在应用第三方代码的时候,可以在前期严格的访问控制定义下,令到改代码的时候,可以有的放矢地改,而不用担心因为改变部分代码而有可能令到程序的其它部分产生其它新问题. 引用原话: 封装使修改代码更加容易和安全.开发RIA软件,和所有其它语言开发软件一样, 会经常调度和修改代码.一般说来,软件的修改和调度时间可能会与开发时间相等, 甚至更长.因此,程序开发者所写的代码要经得起不断的修改.尤其是当编写的代码要 提供给第三方使用时,更要小心你所做的修改,确保你的修改不会危害其它代码的稳健性. 如何确保稳定性?每个类有那么多的属性、方法,你如何知道其它程序员使用了哪些 成员不知道就无从修改!如果有个标识,标识哪些是第三方可以访问的,哪些是他们不能访问和修改的就好了。 6.2.2 封装让代码分成一个个相对独立的单元只要保持对外的接口不变,那么内部的代码结构可以任意改动,保证了代码单元的修改和替换更加安全,软件维护和修改都能有的放矢。6.2.3 封装让整个软件开发的复杂度大大降低模块化,降低复杂度才是封装这个思想产生的最真实的原因,代码易于修改、替换、复用等只是这一点附带的好处而已。6.3 ActionScript3中封装的几个层次包外 - 包 - 类 - 包外类 (由外层到内层的结构,越靠近内近,访问权限越严格)包外:相当于公共权限,任意第三方都可以访问到其中的代码单元。包(package):包内的成员互相可以访问,但包内的成员不能被包外的成员访问到。类(class):一个包中可以包含很多个类,在类的内部,类的成员可以相互访问,但外部是没有办法访问到类的私有成员的。包外类:这是最底层的类,在package语句外定义,只能被当前类中的成员访问,类似只能被当前类调用的私有函数。6.4 package(包)package用于划分访问控制和实现模块化功能。6.4.1 包的导入(import)使用任何一个类之前,必须先导入这个类所在的包,即使使用 全饰路径,也必须先导入包。在Flash CS3文档时间轴上写代码时,flash.*默认是自动导入的,可不用手动import1.导入单个类import 包路径;2.使用通配符导入整个包使用*号可以快速导入指定包的所有类,但一般为了程序的清晰,建议少用,而是直接写清楚导入类的包名import 包路径.*;3.使用同一个包内的类文件无须导入如果导入的不同包中有同名的类,则需要在声明使用时使用全饰路径,即:new 完整包路径.类名();6.4.3 package的创建和命名业界习惯是使用域名来定义包路径比如 com.kinda.book.display如果没有,也可以使用自己的电子邮箱比如 com.21cn.kinda.book.display在项目工程目录下 建立 com文件夹,在com文件夹建kinda文件夹,在kinda文件夹内建book文件夹使用系统目录形式来实现包的管理创建包的过程:1.选好包名,一般以域名段倒写为前缀;2.在硬盘上根据定好的包名结构创建对应的目录结构3.在包中创建的任何类,头部package定义中必须写上包路径修改包结构的时候有三点要做:1.移动包目录2.修改包中类头部 package中的包名3.修改相应import类中的包名/=6.5 *原理:编译器如何导入package编译器会先在系统目录中寻找对应路径类包,如果找不到,就在fla文件对应目录下寻找!系统类路径可以在 编辑 首选参数 Actionscript设置中设置自定义的类包库路径,以方便自己!=/6.5.1 类路径Ctrl+U ActionScript ActionScript 3 Settings.在此可添加系统类包路径,供全局调用。6.6 类成员的访问控制类成员访问控制的原则是最大限度地减少内部公开给外部可访问的方法及属性,可以用最低权限的,尽量用最低!AS3中有四种访问控制符:publicprivateinternal (优先使用,以保证外部类对包内拥有最低的可访问性)protected访问控制符不仅控制实例属性和方法,对静态属性和方法也有同样的作用。6.6.1 internal:包内访问AS3中所有类成员在没加访问控制符的情况下,都为默认的internal权限,可以被同一个包内的其它类成员访问6.6.2 public:完全公开 引用原话: 在些要提醒的是,public的类成员应当看成是这个类对外部做出的承诺、协议, 一旦决定,日后不能轻易改动。不能仅仅为了其他类可以访问某个成员,而轻率地将该成员设为public。这是OOP新手极容易犯的错误。 一旦发现某个类成员需要频繁被外部访问,就要先考虑这个类成员的设计是否不当,可否独立出来;再考虑可否归入那些需要频繁访问的包中,使用internal级别来实现;最后再考虑使用public的访问控制。 总之,尽量将类成员的访问权限控制到最低限度,这才能给日后的修改、维护代码带最大的自由。 6.6.3 private:仅当前类可访问private修饰的类的成员,称为私有成员(private member),除了类体内可以访问外,包内的其它类和继承的子类等都不能访问私有成员。对于复杂数据类型(比如数组等)的属性来说,private只能限制通过当前类的实例来访问,但不能限制这个属性所指向的引用对象本身的访问。6.6.4 protected:子类可访问protected修饰的对象只能被当前类和当前类的子类对象访问,等同在private基础上增加对子类的支持。protected修饰的子类不受包的限制,可以在不同类中,如果不是当前类子类,那和private是一样的。6.7 getter和setter方法getter和setter方法是存取器方法getter方法:访问控制符 function get 访问属性名():返回类型其它代码return 要访问的私有属性;setter方法:访问控制符 function set 访问属性名():返回类型其它代码要访问的私有属性 = 参数;概括:封装的意义就是不想用户直接访问类内的数据,而使用getter和setter则是一种折衷的办法,当用户需要设置对象属性的时候,通过setter函数对传入数据进行验证,然后再赋值给对象,确保了数据的完整性。另外一个,当设置了setter和getter时,属性为可写可读,当只设置setter时为只写(一般较少见),当只设置getter时,属性为只读,通过setter和getter来达到控制访问的目的。6.8 类(Class)的访问控制internal(包内可见)和public(包外可见)两种6.9 包外类包外类是类的私有单元,在package代码体外定义。调用时,如果包中有同名类,则优先调用包外类。=第7章 命名空间=7.1 命名空间的简要解释应用语境,比如“打”字在打电话和打球中有不同的语境 7.1.2 第一个命名空间的代码例子声明命名空间 namespace 空间名class 类名空间名 function 方法名()空间名 function 方法名()使用命名空间use namespace 空间名;类名.空间名:方法名();=第8章 复合与继承=复合和继承的核心思想是重用现有的代码。8.2.3 静态成员的继承父类中的private方法|属性,以及静态方法|属性不能在子类中被访问!对于静态方法|属性,可直接使用 父类名.方法|属性 名的方法直接访问!要在子类中虚拟访问父类的静态方法|属性,请在子类中声明同名的静态方法|属性,指向到 父类.方法名|属性名!8.2.5 继承与重写(Override)AS3中能重写实例方法,不能重写实例属性,以及final声明的都不能被重写!第三部分:ActionScript 3 核心类 =第11章 ActionScript 3 核心类和全局函数=11.1 ActionScript3 中核心类和函数的变化及原因 引用原话: 核心类和全局函数是什么?简单地说,就是处于顶级包中的类和函数。从代码编写上说,我们可以在任何地方直 接调用它们,而不需要导入包或写全饰名称。从功能上说,它们是一门编程语言中最基础的类和函数,也是最常用到 的功能;从包路径上说,它们处于顶层,在顶级包 (Top-Level Package)中。 在ActionScript3中,顶级包已经发生了很大的变动。ActionScript2中我们熟悉的很多全局函数和类,在 ActionScript3中都不再是顶级包中的成员了。比如,getTimer()、setInterval()函数就不再是全局函数,而 MovieClip类、Sound类也已经不再是顶级类。在ActionScript3中,在使用它们之前,必须使用import导入它们所在的包。 ActionScript3的核心类有多少?ActionScript2中可以全局访问的类有40多个,全局函数(包括未公开的)有70 个左右;相比之下,ActionScript3处于顶级的核心类只有28个,全局函数仅21个,另加全局常量4个。 那么为什么会发生这么大的变化呢? ActionScript 3 中核心类和函数的变化及原因 和ActionScript2 中混乱的核心类和全局函数进行比较,就可以明白ActionScript3中不得不进行变革的原因。 ActionScript2拥有过多的核心类和全局函数,是非常混乱和不成熟的。先说说ActionScript2中类的架构:属于显示对象的MovieClip、Video、TextField、Button,属于网络API方面的LoadVars、NetConnection、NetStream,属于绘图方面的一些类,等等,还有一些其他杂七杂八的类都被放在顶级包中。再看看整个系统架构,这些顶级类和相当一部分非顶级类都是直接继承自根类Object类的。在ActionScript2中,顶级包和flash.*包中总共才69个类,居然有近三分之一直接放在了顶级包中,近三分之二直接继承根类Object。这样的系统架构是极不优雅的,不利于语言的 进一步完善。 再看全局函数中的不合理之处:getURL()、setInterval()、gotoAndStop()等不应该成为全局函数,而应当分别归类在网络、工具、视觉元件这样的包中,并划分给特定的类才对。除此而外,还有很多为了和低版本的Flash兼容而保留的一大堆过时的函数,比如setProperty()等。 我们不是苛求前人,说他们的架构设计如何如何糟糕,应当怎样怎样,而是与之比较,明白进步之处,从而对现有架构有更深的理解和领悟。可以看出,这样混乱的状况已经不能适应语言发展要求的标准,只能推翻它,重新设计一个科学而优雅的架构。这就是ActionScript3诞生的原因和目标。一旦开始系统架构设计,首当其冲的就是顶级包中的成员安排。 由于宣布了不与ActionScript2及1兼容,没有了历史包袱,一大堆的过时函数全部淘汰,不合理的顶级类(核心类)和全局函数都重新进行了划分。一些不合理的全局函数分别放到相应的包(package)中,比如getURL(),就被ActionScript3中的包的navigateToURL()替代了;setInterval()函数被放置到了flash.util包中。而不应放在顶级的一些原核心类在重新调整,也被放到了其它的包中 11.2 核心类的数目和列表核心类:(28个,7类)根类:Object语言结构:Class(类)、Function(函数)、Namespace(命名空间)、arguments(参数数组)基本类型:int(有符整形)、Boolean(布尔)、Number(浮点)、String(字符)、uint(无符整型)常用复杂类型:Array(数组)、Date(日期)、RegExp(正则)XML相关类:XML()、XMLList()、Qname()异常类:Error(异常)共11个异常类工具类:Math(数学)全局函数:(6类)类型转换函数:Array,Boolean,int,Number,Object,String,uint,XML,XMLListURI编码解码:decodeURI,decodeURICompnent,encodeURI,URIencodeURIComponentURL编码解码:escape,unescape判值函数:isFinite,isNaN,isXMLName字符串转值函数:parseFloat,parseInt控制台输出函数:trace=第12章 数组:Array=12.1 数组(Array)的介绍ActionScript3中的数组(Array)是以非零整数为索引的稀疏数组(sparse array).所谓稀疏就是指数组元素可以是不同数据类型,不支持类型化数组(typed array).12.1.1 访问数组元素数组索引从0开始12.1.2 数组的长度Act
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 期末说课稿-2025-2026学年中职基础课-拓展模块-教科版(2021)-(英语)-52
- 2025成都市房地产交易代理服务版合同
- 2025二手房屋买卖定金合同模板
- 随州事业单位笔试真题2025
- 2025年中国国际贸易中合同风险与防范策略研究
- 印刷厂员工调岗补贴管理规定
- 2025年签订合同的重点留意事项盘点
- 郴州事业单位笔试真题2025
- 化肥厂质检设备更新规章
- 化肥厂车间通风检查制度
- (一检)泉州市2026届高三高中毕业班质量监测(一)数学试卷(含标准答案)
- 2025年福建省榕圣建设发展有限公司项目招聘12人笔试参考题库附带答案详解
- 矿山设备检修安全培训课件
- 2025-2030数据安全合规审计服务市场爆发及等保测评机构并购价值评估
- 纤维转盘滤布滤池运行维护技术说明
- 2025至2030中国无烟产品行业发展趋势分析与未来投资战略咨询研究报告
- 2025年中国华电集团招聘面试题解析及备考建议手册
- 2025年机器人面试题及答案解析
- 高三第一次月考总结主题班会课件
- 参考活动2 善待身边的人教学设计-2025-2026学年初中综合实践活动苏少版七年级下册-苏少版
- 2025年度江苏省档案管理及资料员基础试题库和答案
评论
0/150
提交评论