配色: 字号:
AS3[1]基础教程
2012-10-23 | 阅:  转:  |  分享 
  
Flash动画设计与制作Flash动画设计与制作Flash简介Flash是Macromedia公司的一个非常受欢迎的多媒体产品
。它是一种用于制作和编辑动画和电影的软件。它可以在使用很少字节量的情况下,实现高质量的矢量图形和交互式动画的制作。它的动画文
件扩展名为.swf,可以插入html语言中,也可以单独成为网页。Flash不但能够制作一般的动画,而且可以制作出带有背景声音,
具有较强的交互性能的电影。2006年底Adobe公司收购Macromedia公司,于07年推出FlashCS版本,在Act
ionScript方面做了较大改动。Flash动画特点用Flash制作出来的动画是矢量的,动画放大后,不会引起失真,所形成动画
文件占用的存储空间很小,特别适合在网络上使用。Flash使用插件方式进行工作,用户只要安装一次插件,就可以在浏览器中观看Flas
h动画。此外Flash支持多种格式图片,支持声音,支持渐变色,支持A1pha透明、蒙扳等功能。Flash动画电影是一种“流”形式
文件,动画是一边下载一边播放的,几乎感觉不到文件下载过程下来。Flash的应用网站建设网上教学课件影视片头游戏制作
手机服务动画片MTV广告……Flashcs3新增功能介绍界面操作面板折叠开关矩形工具椭圆工具导入外部资
源动作面板ActionScript的新特性ActionScript3中的新特性:1.运行时排错:错误会运行时抛出以帮助你
调试你的影片。2.运行时变量类型检测:在回放时会检测变量的类型是否合法。3.类封装:静态定义的类以增强性能。4.方法封装:方
法现在与它们相关的类实例绑定因此在方法中的’this’将不会改变。5.E4X:一个新的,更易于操作的xml6.正则表达式:
支持本地化正规表达式。7.命名空间:不但在xml中支持命名空间而且在类的定义中也同样支持。8.int和uint数据类型:新的数
据变量类型允许ActionScript使用更快的整型数据来进行计算。9.新的显示列表模式:一个新的,自由度较大的管理屏幕上显示对
象的方法。10.新的事件类型模式:一个新的基于侦听器事件的模式。在哪里输入FlashCS3代码时间线上(帧)外部文件
Hello,world对动画的控制体会一下AS3下雪效果在AS3中怎样把库中的元件加载舞台AS3的事件侦听机制在AS
3中改变对象的位置和缩放对象思考如何修改(实现)以前的对影片剪辑的控制?ActionScript3语言基本元素1、数
据的本质及其重要性质数据是一切编程语言的基石ActionScript3中所有数据都是对象数据类型:ActionScrip
t3语言基本元素2、变量的声明和使用变量必须先声明再使用声明变量的语法变量命名规则尽量使用有含义的英文单词作为变量名
变量名采用骆驼式命名法尽量避免变量名中出现数字编号ActionScript3语言基本元素3、使用const声明常量AS3
中新增的关键字语法ActionScript3语言基本元素4、基础数据类型所有的基元数据类型两种复杂数据类型布尔值:B
oolean表示真假两个值:true,false声明一个布尔型变量时忘记赋值,默认值为falseActionScript
3语言基本元素4、基础数据类型所有的基元数据类型两种复杂数据类型数字:int,uint,Numberint:有符号的32
位整数型,数值范围:-231︿+(231-1)uint:没有符号的32位整数型,数值范围:0︿232-1Number:64位
浮点值,数值范围1.79769313486231e+308︿4.960656458412467e-324ActionScrip
t3语言基本元素4、基础数据类型所有的基元数据类型两种复杂数据类型数字:int,uint,Numberint:有符号的
32位整数型,数值范围:-231︿+(231-1)uint:没有符号的32位整数型,数值范围:0︿232-1Number:6
4位浮点值,数值范围1.79769313486231e+308︿4.960656458412467e-324ActionScr
ipt3语言基本元素4、基础数据类型所有的基元数据类型两种复杂数据类型字符串:String如何声明字符串?如何知道字
符串的长度?ActionScript3语言基本元素4、基础数据类型所有的基元数据类型两种复杂数据类型数组:Array
数组最多容纳232-1个元素默认值为空值:null数组的声明方式数组元素的访问ActionScript3语言基本元素4
、基础数据类型所有的基元数据类型两种复杂数据类型Object及关联数组Object的成员声明新Object方法Acti
onScript3语言基本元素4、基础数据类型所有的基元数据类型两种复杂数据类型变量的默认值int,uint的默认值为
0Number的默认值为NaNBoolean的默认值为falseString的默认值为nullActionScript3
语言基本元素5、运算符、表达式及运用要有运算对象才可以进行运算运算对象和运算符的组合称为表达式最常用的运算符:赋值运算符(
=)将等号右边的值(右值)复制给等号左边的变量。等号左边必须是一个变量,不能是基元数据类型,也不能是没有声明的对象的引用。常
见合法形式:非法形式:ActionScript3语言基本元素5、运算符、表达式及运用算数运算符:+,-,,/,%,求反
算数赋值运算符:+=,-=,=,/=,%=关系运算符(判断相等关系):==,!=,===,!==关系运算符(判断大小关系)
:>=,<=,>,<逻辑运算符:&&,||,!三元if-else运算符:?:typeof(用字符串形式返回对象的类型)is
(判断一个对象是否属于一种类型,返回布尔值)as(如果一个对象属于一种类型,则返回这个对象,否则返回null)优先级顺序:使用
括号代替记忆ActionScript3流程控制条件判断功能:当程序执行到“if”语句时,首先判断参数“条件”中逻辑表达
式的运算结果,如果结果为“真”(true)则执行当前“if”语句内的脚本语句,如果结果为“假”(false),则检查当前“if”语
句中是否有“else”或者“elseif”子句,如果有则继续进行判断,如果没有则跳过当前“if”语句内的所有程序代码,继续执行下
面的程序。ActionScript3流程控制三种格式:格式1:如果条件表达式为true(真),执行流程语句;如果为假(
false),不执行流程语句if(条件表达式){流程}
格式2:如果条件表达式为true(真),执行流程a;如果为假(false),执行流程bif(条件表达式){
流程a}else{流程b}
ActionScript3流程控制ActionScript3流程控制三种格式格式3:if(条件表达式1){
流程1;//如果条件表达式1成立则执行流程1}elseif(条件表达式2){
流程2;//如果条件表达式2成立则执行流程2}elseif(条件表达式3){流程3;/
/如果条件表达式3成立则执行流程3}elseif……//elseif语句可以一直写下去,用以判
断多种情况。ActionScript3流程控制ActionScript3流程控制范例:重复左右移动的飞鸟X方向位置
不断改变到达边缘后反向小鸟影片剪辑添加监听事件ActionScript3流程控制循环语句:while,do-wh
ile,for,for…in,foreach…in设计步骤:确定循环内容(循环体)确定循环变量循环三要素:
循环初始化循环条件表达式循环体中必须有改变循环变量值的语句ActionScript
3流程控制while循环控制语句功能:当满足条件表达式的时候,再执行循环体。while(循环条件){
循环体;}do{循环体;}while(循环条件)
不管“条件”成立与否、循环与否,循环体至少都要执行1次。ActionScript3流程控制范例(whi
le):在舞台复制出10个小鸟,而且水平位置、垂直位置、水平缩放比例、垂直缩放比例和透明度都是随机变化的。范例(do…w
hile):根据用户指定的数量加入对象ActionScript3流程控制循环语句For循环控制语句功能:
让指定程序代码块执行一定次数的循环。格式:for(初始化;循环条件;步进){循环体;
}ActionScript3流程控制范例:复制小鸟范例:数的累加ActionScript3流程控制for…
in和foreach…in循环条件是对象的某一组属性或某一数组的元素集合基本语法格式:循环次数由引用对象的属性个数或
者数组元素的个数决定该循环实际上需要穷举该对象或数组中的所有内容。ActionScript3流程控制范例ActionS
cript3流程控制with语句如果有一系列语句都作用于同一对象上,则可以使用with语句一次指定全部语句对该对象的参考
使用with语句可以提高程序的执行速度,并且可以避免重复输入对象名称的问题。ActionScript3流程控制break和
continue语句都在循环体内使用;Break用来直接跳出循环,不再执行循环体内后面的语句。continue语句只是终止当
前这一轮的循环,直接跳到下一轮循环,而在这一轮循环中,循环体内continue后面的语句也不会执行。ActionScript
3流程控制选择分支判断switchActionScript3流程控制ActionScript3中的函数函数:执行
特定任务并可以在程序中重用的代码块。两类:方法;函数闭包两种定义方式:函数语句声明法;函数表达式声明法ActionScrip
t3中的函数参数:按值传入参数:参数对象会复制一个副本供函数内部操作,参数对象本身不会受影响按引用来传入参数:不复制副本,
函数内操作参数对象的引用会改变参数对象的状态。ActionScript3中,所有的参数都是按引用传入的。基元数据类型是不变对
象,传引用和传值的效果一样。ActionScript3中的函数范例:ActionScript3中的函数设置默认参数:调
用函数时,没有写明参数,会调用该参数默认值代替。格式:function(参数1:类型=默认值,参数2:类型=默认值):返回类型{
…}例子:ActionScript3中的函数访问参数信息和…(rest)关键字在函数中传入的参数都被保留在函数自动生成的
一个arguments对象中。可以使用arguments[0]、arguments[1]访问传入的第1个、第2个参数,依次类推
。属性length表示当前传入参数的数目属性callee持有指向当前函数的引用,常常用来创建递归。ActionScript
3中的函数范例:ActionScript3中的函数使用…(rest)关键字在flash中执行一下就可以知道了。先
做按钮的,再看不需要按钮的varsum=0;for(vari=1;i<=100;i++){sum
=sum+i; }trace(sum)for(变量in对象或数组名){//运行脚本
}foreach(变量in对象或数组名){//运行脚本}varmyBooks:Object={
cookbook:”ActionScript3.0Cookbook中文版”,asbook:”A
ctionScript3.0殿堂之路”,mxbook:”FlashMX2004ActionScript动画设
计”}for(varkinmyBooks){trace(“成员名字(键):”+k+”\t成员(值):”+
myBooks[k])}foreach(varkinmyBooks){trace(“成员:”+k)}成员名字(
键):mxbook 成员(值):FlashMX2004ActionScript动画设计成员名字(键):asbook 成员(
值):ActionScript3.0殿堂之路成员名字(键):cookbook 成员(值):ActionScript3.0C
ookbook中文版成员:ActionScript3.0殿堂之路成员:ActionScript3.0Cookbook
中文版成员:FlashMX2004ActionScript动画设计with(mymc){ alpha=0.2 x
=200 y=200}mymc.alpha=20mymc.x=200mymc.y=200=范例:等待目
的地坐标的狮子思考:当输入值超出边界,给出相应提示for(vari:int=0;i<5;i++){ if(i==3)bre
ak; trace("当前数字:"+i);}for(vari:int=0;i<5;i++){ if(i==3)conti
nue; trace("当前数字:"+i);}switch(值或表达式){case值或表达式1:语句1;break;
case值或表达式2:语句2;break;case值或表达式3:语句3;break;defalt:语句4;}v
arfruits:Array=["apple","banana","grape","watermelon","mango"];
varcurrentFruit:String=fruits[Math.floor(Math.random()fruits.le
ngth)];trace("thefruityouselectedis:"+currentFruit);switch
(currentFruit){ case"apple": trace("apple,apple,pleasepay
forapple!"); break; case"mango": trace("mango,mango,plea
sepayformango!"); break; default: trace("^0^,youhavea
freechancetoeat:"+currentFruit);}switch(currentFruit){ c
ase"apple": trace("o,o,it''sanapple!"); case"mango":
trace("eatforfree!"); break; case"banana": case"grape"
: trace("pleasepayforit!!"); break; default: trace("o
,Iwon''tbuywatermelon");functiontest(valuePara:int,reference
Para:Array):void{valuePara=100;referencePara.Push(100);}vara
:int=5varb:Array=[1,2,3];test(a,b);trace(a);trace(b);输出:5,
输出:1,2,3,100functiontest(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,112,9,
2,112,2,9,16,1,2,3functiontest(a:int=3,b:int=2,c:int=1):void{
trace(“参数长度:”+arguments.length);trace(a+b+c);if(a+b+c>0)argum
ents.callee(a-1,b-1,c-1);}test();functiontestA(...paras):voi
d{trace("参数长度:"+paras.length);for(variinparas)trace(paras[i
]);}testA(1,[2,3],"Stringtype");functiontestB(firstPara:Stri
ng,...args):void{trace(args.length);for(variinargs)trace(fi
rstPara+":"+args[i]);;}testB("Btest",[100,200],1000,"Foo");参数
长度:312,3Stringtype3Btest:100,200Btest:1000Btest:Foote
stB(2,3);Flash的应用参看专项训练的前言部分此处用helloword来演示一下再演示一下对动画的播放、停止等功能
的实现在AS3中要加载一个显式对象(我们在舞台上看得见的东西),必须要载入一个类,然后要声明这个类的一个实例,再用new关键字
创建它,最后用addChild()将它加载到舞台。再弄一下以类文件来控制的。整数运算时,使用整型,涉及到小数点时,使用浮点
值。整数数值运算涉及到除法,建议使用浮点值整数运算时,使用整型,涉及到小数点时,使用浮点值。整数数值运算涉及到除法,建议使用浮点
值先在库中右击该元件,打开连接面板,在类的文本框中给这个类取一个名字,比如myl在场景的帧中输入:varmymc
:myl=newmyl();addChild(mymc);mymc.x=100;mymc.y=10
0;function函数名称(事件对象:事件类型):void{//此处是为响应事件而执行的动作。}触
发事件的对象.addEventListener(事件类型.事件名称,函数名称);基元数据类型复杂数据类型Booleani
ntNumberuintString处理数字处理文字标识真假Array,Date,Error,Function,Re
gExp,XML,XMLList,自己定义的类var变量名:数据类型;var变量名:数据类型=值如果要赋值,值的数
据类型必须和变量的数据类型一致ii=3varj=“StringValue”vari:inti=100var
k:int=100,i:int=200varj:String=“StringValue”constfoo:int
=100Boolean,int,Number,unit,StringArray,ObjectBoolean,int,Nu
mber,uint,StringArray,ObjectBoolean,int,Number,uint,StringArra
y,Object使用int,uint,Number应当注意的事项:能用整数值时优先使用int和uint整数值有正负之分时,使
用int只处理正整数,优先使用uint处理和颜色相关的数值时,使用uint碰到或可能碰到小数点时使用Number整数数值运
算涉及到除法,建议使用浮点值Boolean,int,Number,uint,StringArray,Objectvarst
ringSample1:String;varstringSample2:String=“”;varstringSample
3:String=newString()varstringSample4:String=“abc”varstringSa
mple5:String=newString(“abc”)varstringSample6:String=‘abc’var
stringSample:String=“thisisanapple”;varstringLength:Number=
stringSample.length;trace(stringLength)Boolean,int,Number,uint,
StringArray,Objectvara:Array=[]varb:Array=newArray()varc:
Array=[1,2,3,4]vard:Array=newArray(1,2,3,4)根据元素的位置,使用数组运算符[]
d[0],d[1]Boolean,int,Number,uint,StringArray,Object属性(Property
)用来存放各种数据方法(Mehtod)存放函数对象1.使用构造函数varfoo:Object=newObject()
2.使用空的大括号作为newObject()函数的语法快捷方式varfoo:Object={k1:v1,k2:v2,k3:v3}使用空的大括号构造Object时,还可将属性写进去Boolean,int,Number,uint,StringArray,Object常见合法形式vara:int=3varb:Stringb=“new”a=3+4-5varc:Object=newObject()vard:Object=c非法形式vara4=5“Iamastring”=anewObject()=5varfoo:int=10;varbar:int=5;if(foo>bar){trace(“Fooiswinner!”)}else{trace(“Bariswinner!”)}varfoo:int=500;if(foo>0){trace(“foo是一个正整数”)}elseif(foo>100){trace(“foo是一个大于100的正整数”)}else{trace(“foo小于0”)}输出:foo是一个正整数varfoo:int=500;if(foo>100){trace(“foo是一个大于100的正整数”)}elseif(foo>0){trace(“foo是一个正整数”)}else{trace(“foo小于0”)}随机数的使用
献花(0)
+1
(本文系dsxzqmok首藏)