As3学习笔记.docx
《As3学习笔记.docx》由会员分享,可在线阅读,更多相关《As3学习笔记.docx(18页珍藏版)》请在冰豆网上搜索。
As3学习笔记
As3学习笔记
第零节Flash软件基本操作
Flash软件可以做什么?
0.1软件界面介绍与基本工具使用
0.2Flash动画基本概念
0.3补间动画制作
补间动画:
1.传统补间动画:
(动画对象是元件)
2.补间形状动画:
(动画对象是散件)
常用快捷键:
F7:
创建一个空白关键帧
F6:
创建一个关键帧,并且和上一个关键帧的图案相同
F5:
加帧(在补间中)
shift+F5:
减帧(在补间中)
第一章AS3语法基础
第一节AS3语言介绍与开发环境
1.1Flash、AS3、FlashPlayer、AIR简介
1.2开发工具介绍
1.3AS3程序一般流程:
HelloWorld
第二节变量与常量
程序中的数据是如何保存呢?
2.1如何声明变量和常量
//声明变量
varage:
int=23;
//关键字var创建一个变量
/变量名age变量名字特意有指向性的含义
//数据类型int指定变量所记录数据是什么类型
//赋值运算符=给变量指定数据记行记录
//值23变量所记录的数据本身的内容
age=26;
trace(age);
varname:
String;
name="NPC";
//常量
constMAX_AGE:
int=120;
//关键字const创建一个常量
/常量名MAX_AGE常量名字特意有指向性的含义
//数据类型int指定常量所记录数据是什么类型
/赋值运算符=给常量指定数据进行记录
/值23常量所记录的数据本身的内容
2.2变量常量的命名规则
//变量的命名规则驼峰式命名规则
//1.如果存多个单词的变量名第一个单全部小写
//2.第二个单词头字母大写后续字母小写
//3.第N个单头字母大写后续字母小写
//变量名头字符充许或者或者小写字母
//不充许头字符采用数字进行命名
varherolame:
String=\"ZERO\";
varheroMaxAtk:
int=120;
varherql:
int=32;
//varheromaxatk:
int=130;X
//常量命名规则
constHERO_MAX_GRID:
int=100;
2.3变量常量的用途和适用场合
hero.x=300;
hero.x=0;
//变量是记录程序运当中的数据
varheroPosition:
Number=300.45;
heroPosition=150;
hero.x=heroPosition;
/变量是运行变化(充许重新赋值)
/常量一经声明赋值之后不充许重新赋值
constHERO_NAME:
String="张飞";
trace(HERO_NAME);
2.4变量的本质
就是内存中的一个具体盒子(位置),内容是可以变换的。
第三节数据类型
程序中的各种数据是如何进行分类的?
3.1基元数据类型介绍
3.1.1int:
表示整数
3.1.2uint:
表示非负整数
3.1.3Number:
表示浮点数
3.1.4String:
表示字符串
3.1.5Boolean:
表示布尔值
varifWin:
Boolean=false;
varsex:
Boolean=true;//true:
男false:
女
//int:
整型
vara:
int;
trace(a);
//uint:
非负整数
varb:
uint;
trace(b);
//Number:
浮点数
varc:
Number;
trace(c);
//string:
字符串
vard:
String;
trace(d);
//Boolean:
1
vare:
Boolean
3.2使用各种数据类型的注意事项
//1.数据类型必须与变量值相吻合
//vara:
int=“hello”;
//varb:
int=4.8;
//trace(b);
//2.数值型的使用注意事项
//a.注意数值型的取值范围
varc:
uint;
c-一;
trace(c);
//b.整数条件下优先使用int,uint
varage:
int=23;
//c.注意运算结果的数据类型
varpa:
int=5:
varpb:
int=3;s
varpc:
Number;
pc=pa/pb;
trace(pc);
3.3数据类型的相互转化
//1.Number转化为int:
且接舍去小数部分
vara:
int=4.9;
trace(a);
//2.int型与布尔值的转化0:
false非0:
true
varb:
Boolean=Boolean(0);
trace(b);
//3.string与int的转换
varc:
String=String(123);
c+=“abc”;
trace(c);
vard:
int=int(“55”):
trace(d);
d++;
trace(d);
//4.进制转换与精确小数位数
varf:
int=100;
trace(f.toString(16));//按N进制进行输出
varg:
Number=57.658;
trace(g.toFixed
(2)):
/精确到N位小数
3.4复杂数据类型简单介绍
//1.数组介绍
vararr:
Array=[“a”,”b”,”c”.”d]:
trace(arr);
trace(arr.length);
trace(arr[o]);
trace(arr[3]);
//2.对象介绍
varstudent:
Object={name:
”Tom”,age:
18,sex:
”男”};
trace(student.name);I
trace(student[“age”]);
//3.值类型(简单数据类型)和引用类型(复杂数据类型)
vara:
int=3;
varb:
int=a;
b++;
trace(a);
trace(b);
ararrA:
Array=[1,2,3];
vararrB:
Array=arrA;
trace(arrA);
trace(arrB);
arrB.push(4);
trace(arrB);
trace(arrA);
3.4.1Array简单介绍
3.4.1Object简单介绍
3.4.1值类型与引用类型
第五节流程控制
如何让程序执行选择性的工作或者重复性的工作呢?
5.1条件语句
5.1.1if选择
if(a>0)
trace(“这是一个正数”);
trace(“hello”);
//2.if-else语句
if(a%2==0)
trace(“这是一个偶数”);
else
trace("这是一个奇数");
}
elseif(grade==2)
trace("我很上进");
elseif(grade==3)
trace("我很努力");
else
trace(”我有一丝小激动”);
//4.if-elseif-else注意点
varscore:
int=78;
if(score>=90)
{
trace(“优秀”)
elseif(score>=75)
trace(“良好”);
elseif(score>=60)
trace(“及格”);
else
trace(”不合格”);
}
//2.if-else语句
if(a%2==0)
{
trace(“这是一个偶数”);
else
trace(“这是一个奇数”);
//3if-elseif-else语句
vargrade:
int=1;
if(grade==1)
trace(“我很快乐”);
elseif(grade==2)
}
5.1.2switch选择
varlv:
int=40}
switch(lv)
{
case1:
trace(”初出茅庐”);
break;
case2:
trace(”小有所成”);
break;
case3:
trace("杀敌过百");
break;
default:
trace("等级非法");
5.2循环语句
5.2.1for循环
5.2.2while循环与do-while循环
}
5.3break与continue的用法
5.1.1break用法
5.1.2continue用法
5.4条件语句与循环语句的嵌套
/双重选择:
男女身高鉴定
varsex:
String="男”;
varh:
Number=1.78;
if(sex==("男")
{
trace("这是一个男生");
if(h>1.8)
trace("这是一个高个子男生");
else
trace("这是一般男生;
else
trace(“这是一个女生");
}
//双重循环,绘制星星
for(vari:
int=0;i<4;i++)/行数
{
varstr:
String="";
for(varj:
int=0;jj++)
{
str+="*”;∥列数
}
trace(str);
}
//循环判断的嵌套:
计算1到100之间所有偶数的和
varnum:
int;
for(vark:
int=1;k<=100;k++)
{
if(k%2==0)
num+=k;
}
trace(num);
第六节函数
我想写更少的代码做更多的事情!
6.1函数的声明与调用
//函数:
执行特定功能并且可以重复利用的代码块
vara:
int=2;
//函数的声明
functionsay():
void
{
trace("我是高飞");
trace("我来自杭州");
}
say();
say();
6.2函数的形参与实参
//求1+2+3....n
functionadd(n:
int):
void
{
varnum:
int;
for(vari:
int=1;i<=n;i++)
{
num+=i;
}
trace("和为:
"+num);
}
add(10);
add(100);
/*形参:
不关心变量名是什么,关心的是参数的个数和类型.实参:
具体的、实际的参数。
本实例中,n为形参,10、100为实参*/
6.3函数的返回值
/∥求2个数的最大值
/*return:
返回函数运行的结果,并且跳出函数*/
/*return后面的数据类型必须与函数的返回值类型相匹配*/
functionmax(a:
int,b:
int):
int
{
if(a>=b)
{
returna;
}
else
{
returnb;
}
trace("hello");
vart:
int=max(2,5)+max(20,50);
trace(\"t的值为:
\"+t);
//购买商品案例
/*return:
可以在适当的时候,控制整个函数的流程*/
functionbuy(price:
int):
void
{
if(price>=50)
{
trace(“无法购买");
return;
}
trace("购买成功");
trace("玩家得到商品");
trace("玩家金币数减少");
}
buy(200);
functionsayHello):
void
{
trace("hello");
}
sayHello();
6.4函数的嵌套使用
//求1!
+2!
+3!
+..n!
functionfactor(n:
int):
int
{
varnum:
int=1;
for(vari:
int=1;i<=n;i++)
{
num*=i;
}
returnnum;
}
//trace(factor(4));
functionadd(n:
int):
int
{
varsum:
int=0;
for(vari:
int=1;i<=n;i++)
{
sum+=factor(i);
}
returnsum;
}
trace(add(5));
第七节显示对象初步学习
终于可以用代码控制元件了!
7.1影片剪辑
trace(box.x);//输出box的横坐标
trace(box.y);输出box的纵坐标
box.x=200;//指定横坐标
box.y=100;//指定纵坐标
box.width=30;//指定宽度
box.height=50;//指定高度
box.scaleX=2;//横向缩放2倍
box.scaleY=2;//纵向缩放2倍
box.alpha=0.4;//设定透明度
box.rotation=15;//设定旋转角度
box.stop();//停止
box.playO;//播放
box.gotoAndStop(6);//到第6帧停止
box.gotoAndPlay(8);//从第8帧播放
box.gotoAndStop(\"green\");//到“green”标签停止
7.2文本
7.2.1静态文本
7.2.2动态文本
7.2.3输入文本
第八节简单事件
我可以控制Flash里小人的走动了!
8.1鼠标事件
importflash.events.MouseEvent;//载入鼠标事件包
box.addEventListener(MouseEvent.CLICK,onClick);//建立鼠标点击侦听器
box.addEventListener(MouseEvent.MOUSE_DOWN,onDown);//建立鼠标按下侦听器
box.addEventListener(MouseEvent.MOUSE_UP,onUp);//建立鼠标抬起侦听器
functiononClick(e:
MouseEvent):
void//鼠标点击时运行函数
{
trace(”点击");
}
functiononDown(e:
MouseEvent):
void//鼠标按下时运行函数
{
Trace("按下");
}
functiononUp(e:
MouseEvent):
void//鼠标抬起时运行函数
{
trace("抬起");
}
box.addEventListener(MouseEvent.MOUSE_MOVE,onMove);//鼠标在里面移动
box.addEventListener(MouseEvent.MOUSE_OVER,onOver);//鼠标划入
box.addEventListener(MouseEvent.MOUSE_OUT,onOut);//鼠标划出
functiononMove(e:
MouseEvent):
void
{
trace("鼠标在里面移动");
}
functiononOver(e:
MouseEvent):
void
{
trace("鼠标划入");
}
functiononOut(e:
MouseEvent):
void
{
trace("鼠标划出");
}
8.2键盘事件
importflash.events.KeyboardEvent;
stage.addEventListener(KeyboardEvent.KEY_DOWN,onDown);
stage.addEventListener(KeyboardEvent.KEY_UP,onUp);
functiononDown(e:
KeyboardEvent):
void
{
varcode:
String=String.fromCharCode(e.keyCode);
//trace("键值:
"+e.keyCode);
//trace("按下"+code);
//控制影片剪辑移动
if(code=="A")
{
box.x-=5;
}
elseif(code=="D")
{
box.x+=5;
}
elseif(code=="W")
{
box.y-=5;
}
elseif(code=="S")
{
box.y+=5;
}
8.3帧循环事件