AS3flash基础教程.ppt

上传人:本田雅阁 文档编号:2148687 上传时间:2019-02-22 格式:PPT 页数:45 大小:620.51KB
返回 下载 相关 举报
AS3flash基础教程.ppt_第1页
第1页 / 共45页
AS3flash基础教程.ppt_第2页
第2页 / 共45页
AS3flash基础教程.ppt_第3页
第3页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《AS3flash基础教程.ppt》由会员分享,可在线阅读,更多相关《AS3flash基础教程.ppt(45页珍藏版)》请在三一文库上搜索。

1、2019年2月22日8时44分,Flash 动画设计与制作,1,Flash 动画设计与制作,2019年2月22日8时44分,Flash 动画设计与制作,2,Flash简介,Flash 是Macromedia 公司的一个非常受欢迎的多媒体产品。 它是一种用于制作和编辑动画和电影的软件。 它可以在使用很少字节量的情况下,实现高质量的矢量图形和交互式动画的制作。 它的动画文件扩展名为.swf,可以插入html语言中,也可以单独成为网页。 Flash 不但能够制作一般的动画,而且可以制作出带有背景声音,具有较强的交互性能的电影。 2006年底Adobe公司收购Macromedia 公司,于07年推出F

2、lash CS版本,在ActionScript方面做了较大改动。,2019年2月22日8时44分,Flash 动画设计与制作,3,Flash动画特点,用Flash制作出来的动画是矢量的,动画放大后,不会引起失真,所形成动画文件占用的存储空间很小,特别适合在网络上使用。 Flash使用插件方式进行工作,用户只要安装一次插件,就可以在浏览器中观看Flash动画。此外Flash支持多种格式图片,支持声音,支持渐变色,支持A1pha透明、蒙扳等功能。 Flash动画电影是一种“流”形式文件,动画是一边下载一边播放的,几乎感觉不到文件下载过程下来。,2019年2月22日8时44分,Flash 动画设计与

3、制作,4,Flash的应用,网站建设 网上 教学课件 影视片头 游戏制作 手机服务 动画片 MTV 广告 ,2019年2月22日8时44分,Flash 动画设计与制作,5,Flash cs3新增功能介绍,界面操作 面板折叠开关 矩形工具 椭圆工具 导入外部资源 动作面板,2019年2月22日8时44分,Flash 动画设计与制作,6,ActionScript的新特性,ActionScript 3中的新特性: 1.运行时排错:错误会运行时抛出以帮助你调试你的影片。 2.运行时变量类型检测:在回放时会检测变量的类型是否合法。 3.类封装:静态定义的类以增强性能。 4.方法封装:方法现在与它们相关的

4、类实例绑定因此在方法中的this将不会改变。 5.E4X :一个新的,更易于操作的xml 6.正则表达式:支持本地化正规表达式。 7.命名空间:不但在xml中支持命名空间而且在类的定义中也同样支持。 8.int和uint数据类型:新的数据变量类型允许ActionScript使用更快的整型数据来进行计算。 9.新的显示列表模式:一个新的,自由度较大的管理屏幕上显示对象的方法。 10.新的事件类型模式:一个新的基于侦听器事件的模式。,2019年2月22日8时44分,Flash 动画设计与制作,7,在哪里输入Flash CS3代码,时间线上(帧) 外部文件 Hello,world 对动画的控制,20

5、19年2月22日8时44分,Flash 动画设计与制作,8,体会一下AS3,下雪效果 在AS3中怎样把库中的元件加载舞台 AS3的事件侦听机制 在AS3中改变对象的位置和缩放对象,先在库中右击该元件,打开连接面板,在类的文本框中给这个类取一个名字,比如myl 在场景的帧中输入: var mymc:myl = new myl(); addChild(mymc); mymc.x = 100; mymc.y = 100;,function 函数名称(事件对象:事件类型):void / 此处是为响应事件而执行的动作。 触发事件的对象.addEventListener(事件类型.事件名称, 函数名称);

6、,2019年2月22日8时44分,Flash 动画设计与制作,9,思考,如何修改(实现)以前的对影片剪辑的控制?,2019年2月22日8时44分,Flash 动画设计与制作,10,ActionScript 3语言基本元素,1、数据的本质及其重要性质 数据是一切编程语言的基石 ActionScript 3中所有数据都是对象 数据类型:,基元数据类型,复杂数据类型,Boolean int Number uint String,处理数字,处理文字,标识真假,Array,Date,Error,Function,RegExp,XML,XMLList, 自己定义的类,2019年2月22日8时44分,Fla

7、sh 动画设计与制作,11,ActionScript 3语言基本元素,2、变量的声明和使用 变量必须先声明再使用 声明变量的语法,变量命名规则 尽量使用有含义的英文单词作为变量名 变量名采用骆驼式命名法 尽量避免变量名中出现数字编号,var 变量名:数据类型; var 变量名:数据类型 = 值,如果要赋值,值的数据类型必须和变量的数据类型一致,i i=3 var j = “String Value”,var i:int i=100 var k:int = 100,i:int=200 var j:String = “String Value”,2019年2月22日8时44分,Flash 动画设计

8、与制作,12,ActionScript 3语言基本元素,3、使用const声明常量 AS3中新增的关键字 语法,const foo:int = 100,2019年2月22日8时44分,Flash 动画设计与制作,13,ActionScript 3语言基本元素,4、基础数据类型 所有的基元数据类型 两种复杂数据类型,布尔值:Boolean 表示真假 两个值:true,false 声明一个布尔型变量时忘记赋值,默认值为false,Boolean,int,Number,unit,String,Array,Object,2019年2月22日8时44分,Flash 动画设计与制作,14,ActionSc

9、ript 3语言基本元素,4、基础数据类型 所有的基元数据类型 两种复杂数据类型,数字:int,uint,Number int:有符号的32位整数型,数值范围:-231+(231-1) uint:没有符号的32位整数型,数值范围:0 232-1 Number:64位浮点值,数值范围1.79769313486231e+308 4.960656458412467e-324,Boolean,int,Number,uint,String,Array,Object,2019年2月22日8时44分,Flash 动画设计与制作,15,ActionScript 3语言基本元素,4、基础数据类型 所有的基元数据

10、类型 两种复杂数据类型,数字:int,uint,Number int:有符号的32位整数型,数值范围:-231+(231-1) uint:没有符号的32位整数型,数值范围:0 232-1 Number:64位浮点值,数值范围1.79769313486231e+308 4.960656458412467e-324,Boolean,int,Number,uint,String,Array,Object,使用int,uint,Number应当注意的事项: 能用整数值时优先使用int和uint 整数值有正负之分时,使用int 只处理正整数,优先使用uint 处理和颜色相关的数值时,使用uint 碰到或

11、可能碰到小数点时使用Number 整数数值运算涉及到除法,建议使用浮点值,2019年2月22日8时44分,Flash 动画设计与制作,16,ActionScript 3语言基本元素,4、基础数据类型 所有的基元数据类型 两种复杂数据类型,字符串:String 如何声明字符串? 如何知道字符串的长度?,Boolean,int,Number,uint,String,Array,Object,var stringSample1:String; var stringSample2:String=“”; var stringSample3:String=new String() var stringSa

12、mple4:String=“abc” var stringSample5:String=new String(“abc”) var stringSample6:String=abc,var stringSample:String=“this is an apple”; var stringLength:Number=stringSample.length; trace(stringLength),2019年2月22日8时44分,Flash 动画设计与制作,17,ActionScript 3语言基本元素,4、基础数据类型 所有的基元数据类型 两种复杂数据类型,数组:Array 数组最多容纳232

13、-1个元素 默认值为空值:null 数组的声明方式 数组元素的访问,Boolean,int,Number,uint,String,Array,Object,var a:Array= var b:Array=new Array() var c:Array=1,2,3,4 var d:Array=new Array(1,2,3,4),根据元素的位置,使用数组运算符 d0,d1,2019年2月22日8时44分,Flash 动画设计与制作,18,ActionScript 3语言基本元素,4、基础数据类型 所有的基元数据类型 两种复杂数据类型,Object及关联数组 Object的成员 声明新Objec

14、t方法,Boolean,int,Number,uint,String,Array,Object,2019年2月22日8时44分,Flash 动画设计与制作,19,ActionScript 3语言基本元素,4、基础数据类型 所有的基元数据类型 两种复杂数据类型,变量的默认值 int,uint的默认值为0 Number的默认值为NaN Boolean的默认值为false String的默认值为null,Boolean,int,Number,uint,String,Array,Object,2019年2月22日8时44分,Flash 动画设计与制作,20,ActionScript 3语言基本元素,5

15、、运算符、表达式及运用 要有运算对象才可以进行运算 运算对象和运算符的组合称为表达式 最常用的运算符:赋值运算符(=) 将等号右边的值(右值)复制给等号左边的变量。 等号左边必须是一个变量,不能是基元数据类型,也不能是没有声明的对象的引用。 常见合法形式: 非法形式:,常见合法形式 var a : int=3 var b:String b=“new” a=3+4-5 var c:Object=new Object() var d:Object=c,非法形式 var a 4 =5 “I am a string”=a new Object()=5,2019年2月22日8时44分,Flash 动画设

16、计与制作,21,ActionScript 3语言基本元素,5、运算符、表达式及运用 算数运算符:+,-,*,/,%,求反 算数赋值运算符:+=,-=,*=,/=,%= 关系运算符(判断相等关系):=,!=,=,!= 关系运算符(判断大小关系):=, 逻辑运算符:&,|,! 三元if-else运算符:?: typeof(用字符串形式返回对象的类型) is(判断一个对象是否属于一种类型,返回布尔值) as(如果一个对象属于一种类型,则返回这个对象,否则返回null) 优先级顺序:使用括号代替记忆,2019年2月22日8时44分,Flash 动画设计与制作,22,ActionScript 3 流程控

17、制,条件判断 功能:当程序执行到“if”语句时,首先判断参数“条件”中逻辑表达式的运算结果,如果结果为“真”(true)则执行当前“if”语句内的脚本语句,如果结果为“假”(false),则检查当前“if”语句中是否有“else”或者“else if”子句,如果有则继续进行判断,如果没有则跳过当前“if”语句内的所有程序代码,继续执行下面的程序。,2019年2月22日8时44分,Flash 动画设计与制作,23,ActionScript 3 流程控制,三种格式: 格式1:如果条件表达式为true(真),执行流程语句;如果为假(false),不执行流程语句 if(条件表达式) 流程 格式2:如果

18、条件表达式为true(真),执行流程a;如果为假(false),执行流程b if(条件表达式) 流程a else 流程b ,2019年2月22日8时44分,Flash 动画设计与制作,24,ActionScript 3 流程控制,var foo:int=10; var bar:int=5; if(foobar) trace(“Foo is winner!”) else trace(“Bar is winner!”) ,2019年2月22日8时44分,Flash 动画设计与制作,25,ActionScript 3 流程控制,三种格式 格式3:if(条件表达式1) 流程1; /如果条件表达式1成立

19、则执行流程1 else if(条件表达式2) 流程2; /如果条件表达式2成立则执行流程2 else if(条件表达式3) 流程3; /如果条件表达式3成立则执行流程3 else if /else if语句可以一直写下去,用以判断多种情况。,2019年2月22日8时44分,Flash 动画设计与制作,26,ActionScript 3 流程控制,var foo:int = 500; if(foo 0) trace(“foo 是一个正整数”) else if(foo 100) trace(“foo 是一个大于100的正整数”) else trace(“foo 小于0”) ,输出:,foo 是一个

20、正整数,var foo:int = 500; if(foo 100) trace(“foo 是一个大于100的正整数”) else if(foo 0) trace(“foo 是一个正整数”) else trace(“foo 小于0”) ,2019年2月22日8时44分,Flash 动画设计与制作,27,ActionScript 3 流程控制,范例:重复左右移动的飞鸟 X方向位置不断改变 到达边缘后反向 小鸟影片剪辑添加监听事件,2019年2月22日8时44分,Flash 动画设计与制作,28,ActionScript 3 流程控制,循环 语句: while,do-while,for, fori

21、n, for eachin,设计步骤: 确定循环内容(循环体) 确定循环变量 循环三要素: 循环初始化 循环条件表达式 循环体中必须有改变循环变量值的语句,2019年2月22日8时44分,Flash 动画设计与制作,29,ActionScript 3 流程控制,while循环控制语句 功能:当满足条件表达式的时候,再执行循环体。 while(循环条件) 循环体; ,do 循环体; while(循环条件) 不管“条件”成立与否、循环与否,循环体至少都要执行1次。,2019年2月22日8时44分,Flash 动画设计与制作,30,ActionScript 3 流程控制,范例(while): 在舞台

22、复制出10个小鸟,而且水平位置、垂直位置、水平缩放比例、垂直缩放比例和透明度都是随机变化的。 范例(dowhile): 根据用户指定的数量加入对象,随机数的使用,2019年2月22日8时44分,Flash 动画设计与制作,31,ActionScript 3 流程控制,循环语句 For循环控制语句 功能:让指定程序代码块执行一定次数的循环。 格式: for (初始化;循环条件;步进) 循环体; ,2019年2月22日8时44分,Flash 动画设计与制作,32,ActionScript 3 流程控制,范例:复制小鸟 范例:数的累加,var sum = 0; for (var i=1; i=100

23、; i+) sum = sum + i; trace(sum),2019年2月22日8时44分,Flash 动画设计与制作,33,ActionScript 3 流程控制,for in和for each in 循环条件是对象的某一组属性或某一数组的元素集合 基本语法格式:,循环次数由引用对象的属性个数或者数组元素的个数决定 该循环实际上需要穷举该对象或数组中的所有内容。,for (变量 in 对象或数组名) /运行脚本 ,for each(变量 in 对象或数组名) /运行脚本 ,2019年2月22日8时44分,Flash 动画设计与制作,34,ActionScript 3 流程控制,范例,va

24、r myBooks:Object= cookbook:”ActionScript 3.0 Cookbook 中文版” , asbook:”ActionScript 3.0殿堂之路”, mxbook:”Flash MX 2004 ActionScript动画设计” ,for (var k in myBooks) trace(“成员名字(键):”+k+”t成员(值):”+myBooksk) ,for each(var k in myBooks) trace(“成员:”+k) ,成员名字(键):mxbook 成员(值):Flash MX 2004 ActionScript动画设计 成员名字(键):a

25、sbook 成员(值):ActionScript 3.0殿堂之路 成员名字(键):cookbook 成员(值):ActionScript 3.0 Cookbook 中文版,成员:ActionScript 3.0殿堂之路 成员:ActionScript 3.0 Cookbook 中文版 成员:Flash MX 2004 ActionScript动画设计,2019年2月22日8时44分,Flash 动画设计与制作,35,ActionScript 3 流程控制,with语句 如果有一系列语句都作用于同一对象上,则可以使用with语句一次指定全部语句对该对象的参考 使用with语句可以提高程序的执行速

26、度,并且可以避免重复输入对象名称的问题。,with(mymc) alpha = 0.2 x= 200 y = 200 ,mymc.alpha=20 mymc.x = 200 mymc.y = 200,=,范例:等待目的地坐标的狮子,思考:当输入值超出边界,给出相应提示,2019年2月22日8时44分,Flash 动画设计与制作,36,ActionScript 3 流程控制,break和continue语句 都在循环体内使用; Break用来直接跳出循环,不再执行循环体内后面的语句。 continue语句只是终止当前这一轮的循环,直接跳到下一轮循环,而在这一轮循环中,循环体内continue后面

27、的语句也不会执行。,for(var i:int=0;i5;i+) if(i=3)break; trace(“当前数字:“+i); ,for(var i:int=0;i5;i+) if(i=3)continue; trace(“当前数字:“+i); ,2019年2月22日8时44分,Flash 动画设计与制作,37,ActionScript 3 流程控制,选择分支判断switch,switch(值或表达式) case 值或表达式1:语句1;break; case 值或表达式2:语句2;break; case 值或表达式3:语句3;break; defalt: 语句4; ,2019年2月22日8时

28、44分,Flash 动画设计与制作,38,ActionScript 3 流程控制,var fruits:Array=“apple“,“banana“,“grape“,“watermelon“,“mango“; var currentFruit:String=fruitsMath.floor(Math.random()*fruits.length); trace(“the fruit you selected is :“+currentFruit); switch (currentFruit) case “apple“ : trace(“apple,apple,please pay for ap

29、ple!“); break; case “mango“ : trace(“mango,mango,please pay for mango!“); break; default : trace(“0,you have a free chance to eat :“+currentFruit); ,switch (currentFruit) case “apple“ : trace(“o ,o , its an apple!“); case “mango“ : trace(“eat for free!“); break; case “banana“ : case “grape“ : trace(

30、“please pay for it!“); break; default : trace(“o , I wont buy watermelon“);,2019年2月22日8时44分,Flash 动画设计与制作,39,ActionScript 3中的函数,函数:执行特定任务并可以在程序中重用的代码块。 两类:方法;函数闭包 两种定义方式:函数语句声明法;函数表达式声明法,2019年2月22日8时44分,Flash 动画设计与制作,40,ActionScript 3中的函数,参数: 按值传入参数:参数对象会复制一个副本供函数内部操作,参数对象本身不会受影响 按引用来传入参数:不复制副本,函数内操

31、作参数对象的引用会改变参数对象的状态。 Action Script3中,所有的参数都是按引用传入的。 基元数据类型是不变对象,传引用和传值的效果一样。,2019年2月22日8时44分,Flash 动画设计与制作,41,ActionScript 3中的函数,范例:,function test(valuePara:int,referencePara:Array):void valuePara=100; referencePara.Push(100); var a:int=5 var b:Array=1,2,3; test(a,b); trace(a); trace(b);,输出:5, 输出:1,2

32、,3,100,2019年2月22日8时44分,Flash 动画设计与制作,42,ActionScript 3中的函数,设置默认参数:调用函数时,没有写明参数,会调用该参数默认值代替。 格式:function(参数1:类型=默认值,参数2:类型=默认值):返回类型 例子:,function test(a:int=3,b:int=2,c:int=1):void trace(a+b+c,a,b,c); test() test(9) test(2,9) test(1,2,3),6,3,2,1 12,9,2,1 12,2,9,1 6,1,2,3,2019年2月22日8时44分,Flash 动画设计与制作

33、,43,ActionScript 3中的函数,访问参数信息和(rest)关键字 在函数中传入的参数都被保留在函数自动生成的一个arguments对象中。 可以使用arguments0、 arguments1访问传入的第1个、第2个参数,依次类推。 属性length表示当前传入参数的数目 属性callee持有指向当前函数的引用,常常用来创建递归。,2019年2月22日8时44分,Flash 动画设计与制作,44,ActionScript 3中的函数,范例:,function test(a:int=3,b:int=2,c:int=1):void trace(“参数长度:”+arguments.le

34、ngth); trace(a+b+c); if (a+b+c0)arguments.callee(a-1,b-1,c-1); test();,2019年2月22日8时44分,Flash 动画设计与制作,45,ActionScript 3中的函数,使用 (rest)关键字,function testA(.paras):void trace(“参数长度:“+paras.length); for (var i in paras)trace(parasi); testA(1,2,3,“String type“);,function testB(firstPara:String,.args):void trace(args.length); for (var i in args)trace(firstPara+“:“+argsi); testB(“B test“,100,200,1000,“Foo“);,参数长度:3 1 2,3 String type,3 B test:100,200 B test:1000 B test:Foo,testB(2,3);,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1