《AS3flash基础教程.ppt》由会员分享,可在线阅读,更多相关《AS3flash基础教程.ppt(45页珍藏版)》请在金锄头文库上搜索。
1、Flash 动画设计与制作8/12/20241Flash 动画设计与制作Flash简介vFlash 是Macromedia 公司的一个非常受欢迎的多媒体产品。v它是一种用于制作和编辑动画和电影的软件。v它可以在使用很少字节量的情况下,实现高质量的矢量图形和交互式动画的制作。v它的动画文件扩展名为.swf,可以插入html语言中,也可以单独成为网页。vFlash 不但能够制作一般的动画,而且可以制作出带有背景声音,具有较强的交互性能的电影。 v2006年底Adobe公司收购Macromedia 公司,于07年推出Flash CS版本,在ActionScript方面做了较大改动。8/12/2024
2、2Flash 动画设计与制作Flash动画特点v用Flash制作出来的动画是矢量的,动画放大后,不会引起失真,所形成动画文件占用的存储空间很小,特别适合在网络上使用。vFlash使用插件方式进行工作,用户只要安装一次插件,就可以在浏览器中观看Flash动画。此外Flash支持多种格式图片,支持声音,支持渐变色,支持A1pha透明、蒙扳等功能。vFlash动画电影是一种“流”形式文件,动画是一边下载一边播放的,几乎感觉不到文件下载过程下来。8/12/20243Flash 动画设计与制作Flash的应用v网站建设v网上v教学课件v影视片头v游戏制作 v手机服务v动画片 vMTV v广告 v8/12
3、/20244Flash 动画设计与制作Flash cs3新增功能介绍v界面操作v面板折叠开关v矩形工具v椭圆工具v导入外部资源v动作面板8/12/20245Flash 动画设计与制作ActionScript的新特性vActionScript 3中的新特性:v1.运行时排错:错误会运行时抛出以帮助你调试你的影片。v2.运行时变量类型检测:在回放时会检测变量的类型是否合法。v3.类封装:静态定义的类以增强性能。v4.方法封装:方法现在与它们相关的类实例绑定因此在方法中的this将不会改变。v5.E4X :一个新的,更易于操作的xml v6.正则表达式:支持本地化正规表达式。v7.命名空间:不但在x
4、ml中支持命名空间而且在类的定义中也同样支持。v8.int和uint数据类型:新的数据变量类型允许ActionScript使用更快的整型数据来进行计算。v9.新的显示列表模式:一个新的,自由度较大的管理屏幕上显示对象的方法。v10.新的事件类型模式:一个新的基于侦听器事件的模式。8/12/20246Flash 动画设计与制作在哪里输入Flash CS3代码 v时间线上(帧)v外部文件vHello,worldv对动画的控制8/12/20247Flash 动画设计与制作体会一下AS3v下雪效果v在AS3中怎样把库中的元件加载舞台vAS3的事件侦听机制 v在AS3中改变对象的位置和缩放对象 先在库中
5、右击该元件,打开连接面板,在类的文本框中给这个类取一个名字,比如myl 在场景的帧中输入:var mymc:myl = new myl();addChild(mymc);mymc.x = 100;mymc.y = 100;function 函数名称(事件对象:事件类型):void/ 此处是为响应事件而执行的动作。触发事件的对象.addEventListener(事件类型.事件名称, 函数名称);8/12/20248Flash 动画设计与制作思考v如何修改(实现)以前的对影片剪辑的控制?8/12/20249Flash 动画设计与制作ActionScript 3语言基本元素v1、数据的本质及其重要
6、性质v数据是一切编程语言的基石vActionScript 3中所有数据都是对象v数据类型:基元基元数据类型复杂复杂数据类型BooleanintNumberuintString处理数字处理文字标识真假Array,Date,Error,Function,RegExp,XML,XMLList,自己定义的类自己定义的类8/12/202410Flash 动画设计与制作ActionScript 3语言基本元素v2、变量的声明和使用v变量必须先声明再使用v声明变量的语法v变量命名规则v尽量使用有含义的英文单词作为变量名v变量名采用骆驼式命名法v尽量避免变量名中出现数字编号var 变量名:数据类型;var 变
7、量名:数据类型 = 值如果要赋值,值的数据类型必须和变量的数据类型一致ii=3var j = “String Value”var i:inti=100var k:int = 100,i:int=200var j:String = “String Value”8/12/202411Flash 动画设计与制作ActionScript 3语言基本元素v3、使用const声明常量vAS3中新增的关键字v语法const foo:int = 1008/12/202412Flash 动画设计与制作ActionScript 3语言基本元素v4、基础数据类型v所有的基元数据类型v两种复杂数据类型v布尔值:Boo
8、leanv表示真假v两个值:true,falsev声明一个布尔型变量时忘记赋值,默认值为falseBoolean,int,Number,unit,StringArray,Object8/12/202413Flash 动画设计与制作ActionScript 3语言基本元素v4、基础数据类型v所有的基元数据类型v两种复杂数据类型v数字:int,uint,Numbervint:有符号的32位整数型,数值范围:-231+(231-1)vuint:没有符号的32位整数型,数值范围:0 232-1vNumber:64位浮点值,数值范围1.79769313486231e+308 4.960656458412
9、467e-324Boolean,int,Number,uint,StringArray,Object8/12/202414Flash 动画设计与制作ActionScript 3语言基本元素v4、基础数据类型v所有的基元数据类型v两种复杂数据类型v数字:int,uint,Numbervint:有符号的32位整数型,数值范围:-231+(231-1)vuint:没有符号的32位整数型,数值范围:0 232-1vNumber:64位浮点值,数值范围1.79769313486231e+308 4.960656458412467e-324Boolean,int,Number,uint,StringArr
10、ay,Object使用int,uint,Number应当注意的事项:能用整数值时优先使用int和uint整数值有正负之分时,使用int只处理正整数,优先使用uint处理和颜色相关的数值时,使用uint碰到或可能碰到小数点时使用Number整数数值运算涉及到除法,建议使用浮点值8/12/202415Flash 动画设计与制作ActionScript 3语言基本元素v4、基础数据类型v所有的基元数据类型v两种复杂数据类型v字符串:Stringv如何声明字符串?v如何知道字符串的长度?Boolean,int,Number,uint,StringArray,Objectvar stringSample
11、1:String;var stringSample2:String=“”;var stringSample3:String=new String()var stringSample4:String=“abc”var stringSample5:String=new String(“abc”)var stringSample6:String=abcvar stringSample:String=“this is an apple”;var stringLength:Number=stringSample.length;trace(stringLength)8/12/202416Flash 动画设
12、计与制作ActionScript 3语言基本元素v4、基础数据类型v所有的基元数据类型v两种复杂数据类型v数组:Arrayv数组最多容纳232-1个元素v默认值为空值:nullv数组的声明方式v数组元素的访问Boolean,int,Number,uint,StringArray,Objectvar a:Array=var b:Array=new Array()var c:Array=1,2,3,4var d:Array=new Array(1,2,3,4)根据元素的位置,使用数组运算符d0,d18/12/202417Flash 动画设计与制作ActionScript 3语言基本元素v4、基础数
13、据类型v所有的基元数据类型v两种复杂数据类型vObject及关联数组vObject的成员v声明新Object方法Boolean,int,Number,uint,StringArray,Object属性(Property)用来存放各种数据方法(Mehtod)存放函数对象1.使用构造函数var foo:Object=new Object()2.使用空的大括号作为new Object()函数的语法快捷方式var foo:Object=k1:v1,k2:v2,k3:v3使用空的大括号构造使用空的大括号构造Object时,还可将属性写进去时,还可将属性写进去8/12/202418Flash 动画设计与制
14、作ActionScript 3语言基本元素v4、基础数据类型v所有的基元数据类型v两种复杂数据类型v变量的默认值int,uint的默认值为0Number的默认值为NaNBoolean的默认值为falseString的默认值为nullBoolean,int,Number,uint,StringArray,Object8/12/202419Flash 动画设计与制作ActionScript 3语言基本元素v5、运算符、表达式及运用v要有运算对象才可以进行运算v运算对象和运算符的组合称为表达式表达式v最常用的运算符:赋值运算符(=)v将等号右边的值(右值)复制给等号左边的变量。v等号左边必须是一个变
15、量,不能是基元数据类型,也不能是没有声明的对象的引用。v常见合法形式:v非法形式:常见合法形式常见合法形式var a : int=3var b:Stringb=“new”a=3+4-5var c:Object=new Object()var d:Object=c非法形式非法形式var a 4 =5“I am a string”=anew Object()=58/12/202420Flash 动画设计与制作ActionScript 3语言基本元素v5、运算符、表达式及运用v算数运算符:+,-,*,/,%,求反v算数赋值运算符:+=,-=,*=,/=,%=v关系运算符(判断相等关系):=,!=,=
16、,!=v关系运算符(判断大小关系):=,bar) trace(“Foo is winner!”) else trace(“Bar is winner!”) 8/12/202424Flash 动画设计与制作ActionScript 3 流程控制三种格式格式3:if(条件表达式1) 流程1; /如果条件表达式1成立则执行流程1 else if(条件表达式2) 流程2; /如果条件表达式2成立则执行流程2 else if(条件表达式3) 流程3; /如果条件表达式3成立则执行流程3 else if /else if语句可以一直写下去,用以判断多种情况。8/12/202425Flash 动画设计与制作
17、ActionScript 3 流程控制var foo:int = 500;if(foo 0)trace(“foo 是一个正整数”)else if(foo 100)trace(“foo 是一个大于100的正整数”)elsetrace(“foo 小于0”)输出:foo 是一个正整数var foo:int = 500;if(foo 100)trace(“foo 是一个大于100的正整数”)else if(foo 0)trace(“foo 是一个正整数”)elsetrace(“foo 小于0”)8/12/202426Flash 动画设计与制作ActionScript 3 流程控制v范例:重复左右移动的
18、飞鸟vX方向位置不断改变v到达边缘后反向v小鸟影片剪辑添加监听事件8/12/202427Flash 动画设计与制作ActionScript 3 流程控制v循环v语句语句:vwhile,do-while,for,vforin,vfor eachinv设计步骤:设计步骤:v确定循环内容(循环体循环体)v确定循环变量循环变量v循环三要素:v 循环初始化v 循环条件表达式v 循环体中必须有改变循环变量值的语句8/12/202428Flash 动画设计与制作ActionScript 3 流程控制vwhile循环控制语句循环控制语句 功能:当满足条件表达式的时候,再执行循环体。 while(循环条件) 循
19、环体; do 循环体; while(循环条件) 不管“条件”成立与否、循环与否,循环体至少都要执行1次。 8/12/202429Flash 动画设计与制作ActionScript 3 流程控制范例(while): 在舞台复制出10个小鸟,而且水平位置、垂直位置、水平缩放比例、垂直缩放比例和透明度都是随机变化的。范例(dowhile): 根据用户指定的数量加入对象随机数的使用8/12/202430Flash 动画设计与制作ActionScript 3 流程控制v循环语句vFor循环控制语句循环控制语句 功能:让指定程序代码块执行一定次数的循环。 格式: for (初始化;循环条件;步进) 循环体
20、; 8/12/202431Flash 动画设计与制作ActionScript 3 流程控制v范例:复制小鸟v范例:数的累加var sum = 0; for (var i=1; i=100; i+) sum = sum + i; trace(sum)8/12/202432Flash 动画设计与制作ActionScript 3 流程控制vfor in和for each inv循环条件是对象的某一组属性或某一数组的元素集合v基本语法格式:v循环次数由引用对象的属性个数或者数组元素的个数决定v该循环实际上需要穷举该对象或数组中的所有内容。for (变量 in 对象或数组名) /运行脚本for each
21、(变量 in 对象或数组名) /运行脚本8/12/202433Flash 动画设计与制作ActionScript 3 流程控制v范例var 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)
22、成员名字(键):mxbook成员(值):Flash MX 2004 ActionScript动画设计成员名字(键):asbook成员(值):ActionScript 3.0殿堂之路成员名字(键):cookbook成员(值):ActionScript 3.0 Cookbook 中文版成员:ActionScript 3.0殿堂之路成员:ActionScript 3.0 Cookbook 中文版成员:Flash MX 2004 ActionScript动画设计8/12/202434Flash 动画设计与制作ActionScript 3 流程控制vwith语句v如果有一系列语句都作用于同一对象上,则可
23、以使用with语句一次指定全部语句对该对象的参考v使用with语句可以提高程序的执行速度,并且可以避免重复输入对象名称的问题。with(mymc)alpha = 0.2x= 200y = 200mymc.alpha=20mymc.x = 200mymc.y = 200=范例:等待目的地坐标的狮子思考:当输入值超出边界,给出相应提示8/12/202435Flash 动画设计与制作ActionScript 3 流程控制vbreak和continue语句v都在循环体内使用;vBreak用来直接跳出循环,不再执行循环体内后面的语句。vcontinue语句只是终止当前这一轮的循环,直接跳到下一轮循环,而
24、在这一轮循环中,循环体内continue后面的语句也不会执行。for(var i:int=0;i5;i+)if(i=3)break;trace(当前数字:+i);for(var i:int=0;i0)arguments.callee(a-1,b-1,c-1);test();8/12/202444Flash 动画设计与制作ActionScript 3中的函数v使用 (rest)关键字function testA(.paras):voidtrace(参数长度:+paras.length);for (var i in paras)trace(parasi);testA(1,2,3,String type);function testB(firstPara:String,.args):voidtrace(args.length);for (var i in args)trace(firstPara+:+argsi);testB(B test,100,200,1000,Foo);参数长度:312,3String type3B test:100,200B test:1000B test:FootestB(2,3);8/12/202445Flash 动画设计与制作