ActionScript3互动编程第一讲.ppt

上传人:牧羊曲112 文档编号:5414660 上传时间:2023-07-05 格式:PPT 页数:50 大小:220.49KB
返回 下载 相关 举报
ActionScript3互动编程第一讲.ppt_第1页
第1页 / 共50页
ActionScript3互动编程第一讲.ppt_第2页
第2页 / 共50页
ActionScript3互动编程第一讲.ppt_第3页
第3页 / 共50页
ActionScript3互动编程第一讲.ppt_第4页
第4页 / 共50页
ActionScript3互动编程第一讲.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《ActionScript3互动编程第一讲.ppt》由会员分享,可在线阅读,更多相关《ActionScript3互动编程第一讲.ppt(50页珍藏版)》请在三一办公上搜索。

1、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解释机制

2、,因此,从flash产品运行性能上没有任何变化。,AS3,与1、2有着本质的区别,他是一门基于AVM2(ActionScript 3.0虚拟机)运行环境的具备标准OOP语言素质的编程语言。他是flash player发展的重要里程碑。他是建立RIA(丰富互联网程序)的理想语言。AS3一经推出,毫无疑问的已经成为下一代互联网应用程序编程语言的主流。,ActionScript 3.0特色代码执行效率比原来快10倍。编程方式更规范,核心类划分更加合理,细致。强大的事件流机制,使得flash中一切显示对象都可以发送事件和接受事件。引入显示列表概念,使深度管理更加方便和随心所欲。这是flash的重大改变

3、。显示架构彻底改变。,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

4、输入以下代码:,package import flash.display.MovieClip;public class Test extends MovieClip public function Test()trace(“你好”),AS语言基本元素,关于数据类型和对象数据 是一切编程的基础,编程就是把所有看似没有联系的元素按照我们想要的逻辑关系组织起来、以达到我们想要的目的的一种行为。这些元素就是数据。数据类型 我们所提及的元素flash给它做出了严格的类型划分,比如数组、数字、字符串、布尔、影片剪辑、精灵、按钮、位图等等,从大的类型上说AS分为基元数据类型和复杂数据类型:基元数据类型:Bo

5、olean、int、uint、Number、StringBoolean 真和假,主要用于条件判断int 处理整数uint 处理很大的正整数Number 处理带有小数点的数字String 处理字符串。,复杂数据类型相对于基元数据类型而言,简单的复杂数据类型其构成是由基元数据类型构成的,稍微复杂点的数据类型其构成元素本身就是复杂数据类型,更高一级的复杂数据类型,本身能够处理一些事情,比如我们自定义的类、影片剪辑等等。,对象 那么什么是对象呢?一句话就可以概括:“在flash中,一切都是对象.”那就意味着flash的所有数据类型都是对象。对象可以拥有自身的属性(变量)和方法(函数),变量的声明和使用

6、:变量的理解对变量的理解程度从某种程度上决定了你能不能跨入编程的大门!变量好比遥控器,指向我们要操作的数据。对变量的操作,变量指向的数据就会发生变化。变量必须先声明再使用,不然就会报错。就好比你首先要造一个遥控器再给它起个名字,我们才能通过这个遥控器的名字对数据进行操作。,声明变量,var 变量名:类型;var 变量名:类型=值,var 是一个关键字,用来声明变量。冒号后面是指定数据类型,如果赋值,值的类型要和变量类型一致,否则,报错。就像一个遥控器的类型是操纵TCL电视的,你却拿来一台松下电视,让他遥控,结果怎样?AS允许声明变量不赋初始值,系统会根据变量类型给出默认值;,变量默认值,var

7、 a:int,b:uint,c:Number,d:String,e:Boolean,f:Array;var g:Object,h,i:*;trace(a)/0trace(b)/0trace(c)/NaN(Not a Number 不是一个数字 的缩写)trace(d)/nulltrace(e)/falsetrace(f)/nulltrace(g)/nulltrace(h)/undefinedtrace(i)/undefined,变量命名规则 变量命名看似简单却相当重要,掌握行业内的约定俗成规则不仅仅是让代码符合语法更重要的是增强代码的可读性,让自己看明白的同时也要让别人读得明白。,变量命名规则

8、 符合语法系统保留字不可以用作变两名,包括系统的API接口名,也就是所有蓝色字都不可以用作变量名,不然系统会报错。变量名不可以使用数字作为变量名的开头字符如:var 0a;就是错误的。系统支持中文做变量名,但尽量不要用中文做变量名,不符合行业习惯。一旦使用,别人觉得你会很可怕。,变量命名规则 符合行业习惯尽量使用有含义的英文单词做变量名(当然,不懂英文我们可以用汉语拼音)采用骆驼命名法,意思是说第一个单词全部小写,第二个单词的开头字母用大写,第三个开头字母也是大写中间无空格。比如:var myFirstVar 含义是“我的第一个变量”是单词:“my”“first”“var”的单词组合。变量名越

9、短越好,用最短的变量名表达最准确的含义尽量少用数字编号,除非逻辑上必须使用编号 比如:mc1,mc2,mc3等;,变量本质和深层次探讨申明变量的本质值类型变量,var jony:Array=new Array(1,2,3),var a:uint=1var b:uint=ab=2trace(a)/1trace(b)/2,var a:Array=new Array(1,2,3)var b:Array=ab2=8trace(a)/1,2,8trace(b)/1,2,8,变量本质和深层次探讨引用类型变量,const a:uint=28,申明常量 const试图改变常量的值,编译器就会报错对于值类型常量

10、持有的是值,对于引用类型常量持有的是引用.,const a:uint=28a=17/报错!,const a:Array=1,3,4var b:Array=ab1=100trace(a)/1,100,4,注意:常量可以保证持有的引用不发生变化但并不保证引用的目标对象本身不发生变化:,const a:uint=28,申明常量 const试图改变常量的值,编译器就会报错对于值类型常量持有的是值,对于引用类型常量持有的是引用.,const a:uint=28a=17/报错!,基本数据类型,基本数据类型包括所有基元数据类型和两个复杂数据类型(数组和对象)Boolean类型布尔型含有两个值:true 和f

11、alse未申明初始值默认值为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处理无

12、号整数优先考虑Uint,整数处理涉及除法改用Number.处理色彩使用Uint.其他情况一律使用Number,基本数据类型数字类型(Int Uint Number)整数型边界的例子:1、,var a:uint=0a=a-1trace(a)/4294967295,2、,var a:int=2147483647a=a+1trace(a)/-2147483648,基本数据类型字符串类型(String)声明字符串:,var a:String;/声明一个字符串变量,此时未定义,默认为nullvar a:String=“开心网”;/声明一个字符串变量并赋值var a:String=new String(“

13、开心网”);/等同上例var a:String=new String();/用字符串类包装声明结果等同下例var a:String=“”/声明一个空字符串,等同上例var a:String=开心网;/也可用单引号声明字符串,字符串长度:字符串由字符组成,可以包括所有字符包括中文和空格等,一个字符串包括的字符总数称为字符串的长度,在AS中保存在字符串变量的length属性中,基本数据类型字符串类型(String),var a:String=“中华人民共和国,万岁!”;trace(a.length)/11,字符串长度:字符串由字符组成,可以包括所有字符包括中文和空格等,一个字符串包括的字符总数称为

14、字符串的长度,在AS中保存在字符串变量的length属性中,基本数据类型字符串类型(String),特殊字符在字符串中,除了空格还有一些看不见的字符,其中包括换行符(n)、回车符(r)、制表符(t)转义符()等。,基本数据类型数组类型(Array)一组数据的集合称之为数组,在AS中数组包括稀疏数组和关联数组。我们先来看稀疏数组。稀疏数组不关心存入其中的元素是不是同一类型,数组中的对象可以是任何数据类型。定义数组的格式如下:,var myArray:Array;/声明一个数组,未定义初始值,默认为nullvar myArray:Array=new Array();/声明一个数组,定义初始值输出为

15、空白,但不是nullvar 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 myA

16、rray:Object=new Object();myArray“names”=“张凝”;/用数组访问法访问键值可以绕过编译器检查myArray“age”=34;myArray.names=“皇帝”;/属性访问方法修改键值trace(myArray“age”);/数组访问法访问键值trace(myArray.age);/属性访问法访问键值,在上例中,我们创建了一个关联数组对象myArray,在该对象中有两个元素 name 和age 对应着分别的值。像name、age等我们称之为“键”,它的值我们称之为“键值”.,基本数据类型数组类型(Array)多维数组,var myArray:Array=1

17、,2,4,2,4,7,6,4,2trace(myArray1);/2,4,7trace(myArray20);/6,运算符,表达式,运算符定义表示数据采用何种方式运算的符号称之为运算符.,4+3a=b,表达式定义包含运算操作对象和运算符的语句称为表达式.,赋值运算符=可以说“=”是最常用的运算符.它的含义是为操作项赋值或引用.经常用于对属性、变量、方法属性的赋值操作。等号左边必须是一个变量而不能是基原数据类型,也不能是没有声明的对象引用。,以下形式合法:var a:int=4var b:stringb=“开心”a=1+2-3var c:Object=new Object()var d:Obje

18、ct=c以下形式不合法:4=5var a“开心”=anew Object()=a,算术运算符+-*/%算术运算符是我们最熟悉的运算符依次是:加法 减法 乘法 除法 和求模 以及求反运算.,var a:Number=5;var b:Number=2;var c:Number;c=a+b/加法运算 7c=a-b/减法运算 3c=a*b/乘法运算 10c=a/b/除法运算 2.5c=a%b/求模运算 1c=-a/求反运算-5,算术赋值运算符+=-=*=/=%=算术赋值运算符是将算术运算符和赋值运算符组合在一起的运算,含义是运算并赋值.例如:,var a:Number=5;var b:Number=2

19、;a+=b;/7,意思是将变量a持有的值和变量b持有的值相加得到的结果赋值给a上例等同于:a=a+b其他运算符含义同上如:a*=b/a=a*ba/=3/a=a/3a%=2/a=a%2,比较运算符=相等!=不等=全等!=全不等=大于等于大于小于,比较运算符比较运算符左边可以是表达式、变量或值,不一定是变量。这点和赋值运算符不同。比较运算符运算的结果是布尔值:true/false例如:,var a:Number=5;var b:Number=2;trace(a=b)/falsetrace(a!=b)/truetrace(ab)/truetrace(a(b-a)/true;,比较运算符相等和全等区别

20、对于基础类型不同的变量,相等运算符会先转换数据类型再进行比较,而全等则不进行数据类型转换,例如:,var a:Number=5;var b:Number=5;trace(a=b)/truetrace(a=b)/truevar c:String=“5”;trace(a=c)/truetrace(a=c)/falsevar d:Uint=1;var e:Boolean=truetrace(d=e)/true;trace(d=e)/false,逻辑运算符&|!和,或,非 返回值为布尔型。例如:,var a:Number=5;var b:Number=5;var c:String=“5”;var d:

21、Uint=1;var e:Boolean=truetrace(a=b&c=d)/falsetrace(a=b|c=d)/truetrace(!e)/false,特殊运算符?:、typeof、is、as、in 这几个运算符之间并没有关联,之所以放 在一起讲是因为他们都比较特殊。1、?:三元条件运算符 它是AS中唯一的一个三元运算符,也就是他有三个运算项,相当于 if.else条件句的简写,用法如下,(条件表达式)?(表达式1):(表达式2);/相当于:If(条件表达式)表达式1else表达式2,2、typeof 返回操作项类型字符串形式,trace(typeof 8)/number,注意,返回的

22、类型不一定就是类名的小写形式,对应列表如下:,3、is 检查操作项是否属于指定数据类型返回布尔值,trace(8 is Number)/true,4、as 检查操作项是否可以作为指定数据类型存在,如果可以则返回该对象,如果不可以则返回null。例如:,trace(8 as Number)/8trace(8 as Array)/nullvar a:Array=1,2,3var b:Object=a as Objecttrace(b)/返回1,2,3 说明数组本身就是对象的事实。,5、in 检查一个对象是否作为另一个对象的键或索引,含有返回true 否则返回false,var a:Array=w,e,f,d,g,j trace(5 in a)/true trace(6 in a)/false var b:Object=name:kaixin,age:16 trace(name in b)/true trace(sexy in b)/false,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号