




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ActionScript 3 互动编程,第一讲 语言基础,AS语言简介,AS的前身出现于flash player 4.0中,用于控制flash 内容,并进行简单的交互性脚本的编写。随着flash player 5的产生,越来越多的语法和语义被纳入到当时AS1.0的API中,直到后来的flash7仍然延续着AS1的核心解释机制。 。,AS2的出现,并没有给flash用户带来不习惯,根本原因是,虽然语法更加规范,增加了更多的API用于控制flash的元素,但其核心解释机制仍然是1.0。其实,AS2相当于AS1的OOP包装版,简单来说,就是用规范的面向编程语法编写,但在编译阶段还是用原来的1.0解释机制,因此,从flash产品运行性能上没有任何变化。,AS3,与1、2有着本质的区别,他是一门基于AVM2(ActionScript 3.0虚拟机)运行环境的具备标准OOP语言素质的编程语言。他是flash player发展的重要里程碑。他是建立RIA(丰富互联网程序)的理想语言。AS3一经推出,毫无疑问的已经成为下一代互联网应用程序编程语言的主流。,ActionScript 3.0特色 代码执行效率比原来快10倍。 编程方式更规范,核心类划分更加合理,细致。 强大的事件流机制,使得flash中一切显示对象都可以发送事件和接受事件。 引入显示列表概念,使深度管理更加方便和随心所欲。这是flash的重大改变。显示架构彻底改变。,AS3.0的编写环境 AS 3.0(以下简称AS,除非特别声明,以后课堂提及的均是3.0版本)的代码编写有两种选择: 在外面写成单独的AS类文件再和flash中的库元件进行绑定。或者直接和flash文件做绑定 直接在关键桢上编写代码。 (这里要特别指出:flash CS3,CS4不再允许往按钮上、影片剪辑上附加事件代码。),在关键帧上附加代码的举例: trace(“你好”) (trace是最常用的函数之一,他的功能是将括号里的内容输出到输出面板) 在外部AS中编写举例: 1、新建flash,存为test.fla新建AS文件存为Test.as把两个文件放在同一个文件夹中。打开Test.as输入以下代码:,package import flash.display.MovieClip; public class Test extends MovieClip public function Test() trace(“你好”) ,AS语言基本元素,关于数据类型和对象 数据 是一切编程的基础,编程就是把所有看似没有联系的元素按照我们想要的逻辑关系组织起来、以达到我们想要的目的的一种行为。这些元素就是数据。 数据类型 我们所提及的元素flash给它做出了严格的类型划分,比如数组、数字、字符串、布尔、影片剪辑、精灵、按钮、位图等等,从大的类型上说AS分为基元数据类型和复杂数据类型: 基元数据类型:Boolean、int、uint、Number、String Boolean 真和假,主要用于条件判断 int 处理整数 uint 处理很大的正整数 Number 处理带有小数点的数字 String 处理字符串。,复杂数据类型 相对于基元数据类型而言,简单的复杂数据类型其构成是由基元数据类型构成的,稍微复杂点的数据类型其构成元素本身就是复杂数据类型,更高一级的复杂数据类型,本身能够处理一些事情,比如我们自定义的类、影片剪辑等等。,对象 那么什么是对象呢?一句话就可以概括:“在flash中,一切都是对象.”那就意味着flash的所有数据类型都是对象。 对象可以拥有自身的属性(变量)和方法(函数),变量的声明和使用: 变量的理解 对变量的理解程度从某种程度上决定了你能不能跨入编程的大门! 变量好比遥控器,指向我们要操作的数据。对变量的操作,变量指向的数据就会发生变化。 变量必须先声明再使用,不然就会报错。就好比你首先要造一个遥控器再给它起个名字,我们才能通过这个遥控器的名字对数据进行操作。,声明变量,var 变量名: 类型; var 变量名:类型=值,var 是一个关键字,用来声明变量。冒号后面是指定数据类型,如果赋值,值的类型要和变量类型一致,否则,报错。 就像一个遥控器的类型是操纵TCL电视的,你却拿来一台松下电视,让他遥控,结果怎样? AS允许声明变量不赋初始值,系统会根据变量类型给出默认值;,变量默认值,var a:int,b:uint,c:Number,d:String,e:Boolean,f:Array; var g:Object,h, i:*; trace(a)/0 trace(b)/0 trace(c) /NaN (Not a Number 不是一个数字 的缩写) trace(d)/null trace(e)/false trace(f)/null trace(g)/null trace(h)/undefined trace(i)/undefined,变量命名规则 变量命名看似简单却相当重要,掌握行业内的约定俗成规则不仅仅是让代码符合语法更重要的是增强代码的可读性,让自己看明白的同时也要让别人读得明白。,变量命名规则 符合语法 系统保留字不可以用作变两名,包括系统的API接口名,也就是所有蓝色字都不可以用作变量名,不然系统会报错。 变量名不可以使用数字作为变量名的开头字符如:var 0a ; 就是错误的。 系统支持中文做变量名,但尽量不要用中文做变量名,不符合行业习惯。一旦使用,别人觉得你会很可怕。,变量命名规则 符合行业习惯 尽量使用有含义的英文单词做变量名(当然,不懂英文我们可以用汉语拼音) 采用骆驼命名法,意思是说第一个单词全部小写,第二个单词的开头字母用大写,第三个开头字母也是大写中间无空格。比如:var myFirstVar 含义是“我的第一个变量”是单词:“my” “first” “var” 的单词组合。 变量名越短越好,用最短的变量名表达最准确的含义 尽量少用数字编号,除非逻辑上必须使用编号 比如: mc1,mc2,mc3等;,变量本质和深层次探讨 申明变量的本质 值类型变量,var jony:Array=new Array(1,2,3),var a:uint=1 var b:uint=a b=2 trace(a)/1 trace(b)/2,var a:Array=new Array(1,2,3) var b:Array=a b2=8 trace(a)/1,2,8 trace(b)/1,2,8,变量本质和深层次探讨 引用类型变量,const a:uint=28,申明常量 const 试图改变常量的值,编译器就会报错 对于值类型常量持有的是值,对于引用类型常量持有的是引用.,const a:uint=28 a=17/报错!,const a:Array=1,3,4 var b:Array=a b1=100 trace(a) /1,100,4,注意: 常量可以保证持有的引用不发生变化但并不保证引用的目标对象本身不发生变化:,const a:uint=28,申明常量 const 试图改变常量的值,编译器就会报错 对于值类型常量持有的是值,对于引用类型常量持有的是引用.,const a:uint=28 a=17/报错!,基本数据类型,基本数据类型 包括所有基元数据类型和两个复杂数据类型(数组和对象) Boolean类型 布尔型含有两个值:true 和false 未申明初始值默认值为false 用于条件判断 数字类型(Int Uint Number),基本数据类型 数字类型(Int Uint Number) Int 32位整型数 范围在-21474836482147483647之间 Uint 32位非负整数 范围在04294967295之间 Number 64位浮点数 范围在 1.79769313486231e+308 到4.940656458412467e-324之间 (e+308)是科学计数法意思是乘以10的正308次方,基本数据类型 数字类型(Int Uint Number) 数字类型使用场合: 处理整数优先考虑Int或Uint 处理有负号的整数用Int 处理无号整数优先考虑Uint,整数处理涉及除法改用 Number.处理色彩使用Uint.其他情况一律使用 Number,基本数据类型 数字类型(Int Uint Number) 整数型边界的例子: 1、,var a:uint=0 a=a-1 trace(a)/ 4294967295,2、,var a:int= 2147483647 a=a+1 trace(a)/ -2147483648,基本数据类型 字符串类型(String) 声明字符串:,var a:String ; /声明一个字符串变量,此时未定义,默认为null var a:String=“开心网”;/声明一个字符串变量并赋值 var a:String=new String(“开心网”);/等同上例 var a:String=new String();/用字符串类包装声明结果等同下例 var a:String=“”/声明一个空字符串,等同上例 var a:String=开心网;/也可用单引号声明字符串,字符串长度: 字符串由字符组成,可以包括所有字符包括中文和空格等,一个字符串包括的字符总数称为字符串的长度,在AS中保存在字符串变量的length属性中,基本数据类型 字符串类型(String),var a:String=“中华人民共和国,万岁!”; trace(a.length)/11,字符串长度: 字符串由字符组成,可以包括所有字符包括中文和空格等,一个字符串包括的字符总数称为字符串的长度,在AS中保存在字符串变量的length属性中,基本数据类型 字符串类型(String),特殊字符 在字符串中,除了空格还有一些看不见的字符,其中包括换行符(n)、回车符(r)、制表符(t)转义符()等。,基本数据类型 数组类型(Array) 一组数据的集合称之为数组,在AS中数组包括稀疏数组和关联数组。我们先来看稀疏数组。 稀疏数组不关心存入其中的元素是不是同一类型,数组中的对象可以是任何数据类型。定义数组的格式如下:,var myArray:Array;/声明一个数组,未定义初始值,默认为null var myArray:Array=new Array();/声明一个数组,定义初始值输出为空白,但不是null var myArray:Array= ;/等同上例 var myArray:Array=new Array(1,2,3);/声明一个数组,定义初始值 var myArray:Array= 1,2,3;/等同上例 var myArray:Array= new Array(6);/定义一个长度为6的数组,此时每个元素为空,基本数据类型 数组类型(Array) 访问数组中的元素: 在已知元素位置的情况下就可以用中括号访问数组元素,var myArray:Array=2,3,4,2,6,3,9; trace(myArray3) ; / 2,基本数据类型 数组类型(Array) 关联数组 先看案例:,var myArray:Object=new Object(); myArray“names”=“张凝”;/用数组访问法访问键值可以绕过编译器检查 myArray“age”=34; myAs=“皇帝”;/属性访问方法修改键值 trace(myArray“age”);/数组访问法访问键值 trace(myArray.age);/属性访问法访问键值,在上例中,我们创建了一个关联数组对象myArray,在该对象中有两个元素 name 和age 对应着分别的值。像name 、age等我们称之为“键”,它的值我们称之为“键值”.,基本数据类型 数组类型(Array) 多维数组,var myArray:Array=1,2,4,2,4,7,6,4,2 trace(myArray1); /2,4,7 trace(myArray20); / 6,运算符,表达式,运算符定义 表示数据采用何种方式运算的符号称之为运算符.,4+3 a=b,表达式定义 包含运算操作对象和运算符的语句称为表达式.,赋值运算符 = 可以说“=”是最常用的运算符.它的含义是为操作项赋值或引用.经常用于对属性、变量、方法属性的赋值操作。等号左边必须是一个变量而不能是基原数据类型,也不能是没有声明的对象引用。,以下形式合法: var a:int=4 var b:string b=“开心” a=1+2-3 var c:Object=new Object() var d:Object=c 以下形式不合法: 4=5 var a “开心”=a new Object()=a,算术运算符 + -*/% 算术运算符是我们最熟悉的运算符依次是:加法 减法 乘法 除法 和求模 以及求反运算.,var a:Number=5; var b:Number=2; var c:Number; c=a+b /加法运算 7 c=a-b/减法运算 3 c=a*b/乘法运算 10 c=a/b /除法运算 2.5 c=a%b/求模运算 1 c=-a/求反运算 -5,算术赋值运算符 += -= *= /= %= 算术赋值运算符是将算术运算符和赋值运算符组合在一起的运算,含义是运算并赋值.例如:,var a:Number=5; var b:Number=2; a+=b; / 7,意思是将变量a持有的值和变量b持有的值相加得到的结果赋值给a 上例等同于: a=a+b 其他运算符含义同上如: a*=b/a=a*b a/=3/a=a/3 a%=2/a=a%2,比较运算符 = 相等 !=不等 =全等 !=全不等 = 大于等于 大于 小于,比较运算符 比较运算符左边可以是表达式、变量或值,不一定是变量。这点和赋值运算符不同。比较运算符运算的结果是布尔值:true / false 例如:,var a:Number=5; var b:Number=2; trace(a=b)/ false trace(a!=b)/true trace(ab)/true trace(a(b-a)/true;,比较运算符 相等和全等区别 对于基础类型不同的变量,相等运算符会先转换 数据类型再进行比较,而全等则不进行数据类型 转换,例如:,var a:Number=5; var b:Number=5; trace(a=b)/true trace(a=b)/true var c:String=“5”; trace(a=c)/true trace(a=c)/false var d:Uint=1; var e:Boolean=true trace (d=e) /true; trace(d=e)/false,逻辑运算符 & | ! 和,或,非 返回值为布尔型。 例如:,var a:Number=5; var b:Number=5; var c:String=“5”; var d:Uint=1; var e:Boolean=true trace(a=b&c=d) /false trace(a=b|c=d)/true trace(!e)/f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论