FlashAS20代码大全.docx
- 文档编号:28713071
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:57
- 大小:51.16KB
FlashAS20代码大全.docx
《FlashAS20代码大全.docx》由会员分享,可在线阅读,更多相关《FlashAS20代码大全.docx(57页珍藏版)》请在冰豆网上搜索。
FlashAS20代码大全
Flashas2。
0代码大全与Flash制作技巧
一、注释
//单行注释符
/**/多行注释符/*开始,*/结束
二、转义字符
转义序列
\b
\f
\n
\r
\t
\ "
\'
\\
字符
退格符(ASCII8)
换页符(ASCII12)
换行符(ASCII10)
回车符(ASCII13)
制表符(ASCII9)
双引号
单引号
反斜杠
例1:
trace(”Hello\n”+"ActionScript"+"2.0”)字符串之间使用运算符+连接
结果输出:
Hello
ActionScript2。
0
实例:
获得系统的事件2:
vartime=newDate();
//创建Date类的实例(Date类的实例含系统时间的所有信息);注意var中的字母v是小写的。
varyy=time。
getFullYear();
varmm=time。
getMonth()+1;
/*getMonth比较特殊,它返回的值是0—11之间的数值,
所以必须要加上1*/
vardd=time。
getDate();
varxq=time.getDay();//返回值为0,周末
varhh=time。
getHours();
varmin=time。
getMinutes();
varss=time。
getSeconds();
trace(yy+"年/\n”+mm+"月\n"+dd+"日\n”+"星期”+xq+"\n”+hh+”点\n"+min+”分\n"+ss+"秒”)
//换行符号必须在引号里边才可以
a=yy+"年"+mm+”月"+dd+"日”+”星期"+xq+hh+”点”+min+"分”+ss+"秒"
三、声明方式及获取类型
1.变量的声明方式,数字于字符串数字相加的规则
数字声明的方式
vara:
String="12";//声明变量a是一个字符串类型,为12
varb:
Number=34;//声明变量b是一个数字字符串类型,为34
varc=a+b;//声明变量c=a+b
trace(c);//字符串类型和数字类型的变量相加时,数字型被转换成字符串再相加
输出结果:
1234
2。
实例:
确定变量的数据类型typeof
varm="12”;
trace(typeof(m));
m=2;
trace(typeof(m))
输出结果:
stringnumber
3.改变数据的类型:
数字Number()、字符串String()、逻辑是否Boolean、对象数据类Object()、数组Array();
vara=”12";//声明变量a是一个字符串类型,为12
varb=Number(a);//将a转换为数字类型,赋予b
trace(typeof(b)+”:
”+b)
输出结果:
number:
12
四、运算符
1。
点运算符:
用来连接对象与嵌套再对象中的子对象,以及访问对象于对象的属性和方法。
例:
this.stop//当前对象停止
2.数值运算符
运算符
+
—
*
/
%
++
-—
执行的运算
加法
减法
乘法
除法
取余数
递增
递减
3。
比较运算符
运算符
〈
〉
<=
>=
==
===
!
=
!
==
执行的运算
小于
大于
小于等于
大于等于
等于
严格等于
不等于
严格不等于
例:
x="100”
y=100
z1=(x==y)
z2=(x===y)//z1、z2对两个式子进行判断,如果是正确的,则为true,如果为错误的则为false
trace(z1+”/"+z2)输出结果:
true/false
4。
字符串运算符+
+进行连接时,对于不是字符串类型的数值,先将其转换成字符串,再进行连接。
如果要将两个数字类型的数字进行连接,可以借助空字符串
例:
m=12+34;
n=”"+12+34
trace("m="+m+”\nn=”+n)//输出结果m=46换行n=1234
5。
逻辑运算符
逻辑运算符对布尔值(逻辑是于逻辑否)进行运算,结果是一个布尔值true或false
符号
!
&&
‖
名称
逻辑非
逻辑与(并且)
逻辑或(或者)
意义
返回相反的结果
两个均为true时结果为true
一个为true时,结果即为true
例:
age=10;h=1.0;
if(age>60||age〈14&&!
(h>1。
1)){//身高不超过1.1,年龄小于14大于60的免票
trace(”免票");//输出结果:
免票
}//先执行逻辑非!
,然后是逻辑与&&,然后是逻辑或‖
6。
赋值运算符
运算符
意义
实例
+=
相加并赋值
x+=5等效于x=x+5
-=
相减并赋值
x—=5等效于x=x-5
*=
相乘并赋值
x*=5等效于x=x*5
/=
相除并赋值
x/=5等效于x=x/5
%=
取模并赋值
x%=5等效于x=x%5
&=
换位与并赋值
x&=5等效于x=x&5
赋值运算符的一种特殊形式:
条件赋值运算符
a=条件?
数值1:
数值2//如果条件满足,则为值2,如果不满足,则为数值1
h=2;a=age〉60||h<1.1?
5:
10
trace(”升高为”+h+"米”+”\n价格为"+a+"元")//输出为:
升高为2米价格为10元
7。
数组访问运算符
五、程序结构
1。
条件结构
语法格式:
①if(条件){执行操作}
②if(条件){执行操作1}else{执行操作2}
③if(条件){执行操作1}elseif(条件2){执行操作2}elseif(条件3){执行操作3}-———else{执行操作}
2.循环结构
语法格式:
For(语句1;语句2;语句3){执行语句}
语句1通常为赋值语句,语句2通常为表达式进行条件判断,在循环执行一次后执行语句3
例:
varsum=0;
for(vari=1;i〈=100;i++){sum+=i;}
//初始值为1,在小于100的情况下,加到sum中,再i加1执行
trace(sum);//输出结果为5050
3.循环结构while
语法格式:
while(条件){执行语句}
varsum=0;vari=1;
while(i〈=100){sum+=i;i++}trace(sum)输出结果:
5050
4.break和continue语句:
break用于跳出整个循环;continue用于跳出本轮循环
质数的判断,判断100以下的数字是否是质数
for(vari=3;i<=100;i+=2){//检测100以下的数字
for(varj=2;j
if(i%j==0){
break;}//如果相除无余数,则退出j的循环
elseif(j==i—1){trace(i);}}}
计算1-100之间所有不能被5整除的自然数的和
varsum=0
for(vari=1;i〈=100;i+=1){
if(i%5==0){
continue;}//如果能被5整除,则跳出,开始下一个循环
trace(i)//输出所有不能被整除的数字
sum+=i}trace(sum)//显示和,输出为4000
5。
分支结构swich:
swich用来实现分支结构
实例1获取系统时间,然后根据系统时间中的星期数输出适当的字符串
vartoday=newDate()
switch(today.getDay()){
case0:
trace("今天是星期天”);break;//case与后边的数值,必须有一个空格
case1:
trace(”今天是星期一”);break;
case2:
trace(”今天是星期二”);break;
case3:
trace(”今天是星期三”);break;
case4:
trace("今天是星期四”);break;
case5:
trace(”今天是星期五");break;
default:
trace(”今天是星期六");}//返回当天的星期
实例2判断当前月份所含的天数
vartoday=newDate();
theYear=today。
getFullYear();
theMonth=today.getMonth()+1;
switch(theMonth){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
ts=31;break;//如果是1、3、5、7、8、10、12月,ts则为31
case4:
case6:
case9:
case11:
ts=30;break;//如果是4、6、9、11月,ts则为30
case2:
if(theYear%4==0){ts=29;}else{ts=28;}}
trace(”本月有"+ts+”天")
6。
with语句
语言格式
with(对象){对象的属性和方法}
例:
with(mc){
nextFrame();
_x=100;
_y=100;
_ratation=90;}
六、事件处理机制
1、按钮事件on()
实例1:
用on的键盘事件控制一个元件.新建一个元件,命名为mc,用移动键控制。
(注:
可以将按钮放在屏幕外)
on(keyPress”〈Left>"){
if(mc._x〉=1){
mc。
_x—=5}else{mc。
_x=0}}//左移5像素
on(keyPress"
if(mc。
_x<=549—mc。
_width){
mc._x+=5}else{mc。
_x=550-mc。
_width}}//右移5像素
on(keyPress”〈Up>"){
if(mc。
_y>=1){
mc._y-=5;mc。
_xscale=mc。
_yscale—=5}
else{mc。
_y=0;mc._xscale=mc._yscale}}//上移5像素,横向和纵向缩小20%
on(keyPress”
if(mc._y<=400—mc。
_height){
mc。
_y+=5;mc._xscale=mc._yscale+=5}
else{mc。
_y=400-mc._height;mc._xscale=mc。
_yscale}}//下移5像素横向和纵向增加5%
事件处理函数
说明
onPress
在按钮上按下鼠标左键时调用
onRelease
在按钮上按下鼠标左键并释放时调用
onReleaseOutside
在按钮上按下鼠标左键然后将鼠标移到按钮外部并释放左键时调用
onRollOver
当鼠标指针从按钮外移到按钮上时调用
onRollOut
当鼠标指针从按钮外移到按钮外时调用
onDragOver
在按钮外按下鼠标左键然后将鼠标指针拖到按钮上时调用
onDragOut
在按钮外按下鼠标左键然后将鼠标指针拖到按钮外时调用
onKeyDown
当按下键时调用
onKeyUp
当释放按键时调用
onSetFocus
当按钮具有输入焦点而且释放某按键时调用
onKillFocus
当从按钮移除焦点时调用
2。
影片剪辑事件onClipEvent()
事件处理函数
说明
load
影片剪辑被加载并显示在时间轴中
unload
影片剪辑被删除并从时间轴中消失
enterFrame
播放头进入到影片剪辑实例所在的帧
mouseMove
移动鼠标
mouseDown
按下鼠标左键
mouseUp
释放鼠标左键
keyDown
按下键盘上的键
keyUp
释放键盘上的键
data
通过loadMovie()或loadVariables()方法接收外部数据时引起该事件
实例1:
四处弹跳的小球
onClipEvent(load){
_x=0;_y=0;varVx=25;varVy=25}
onClipEvent(enterFrame){
_x+=Vx;_y+=Vy;
if(_x>550-_width||_x〈0){Vx*=-1;}
if(_y〉400—_height||_y〈0){Vy*=-1}}
实例2mouseMove事件实现鼠标跟随
第一个对象
onClipEvent(mouseMove){
_x+=(_root。
_xmouse—_x)/5;//_xmouse、_ymouse鼠标的横纵坐标
_y+=(_root。
_ymouse-_y)/5;//_root._xmouse鼠标在主场景的横坐标
}//将当前对象坐标定义为鼠标的坐标
第二个对象
onClipEvent(mouseMove){
_x+=(_root.n1。
_x-_x)/5;//_xmouse、_ymouse鼠标的横纵坐标
_y+=(_root.n1._y—_y)/5;//_root._xmouse鼠标在主场景的横坐标
}//距离为到n1的距离的1/5
以此类推
实例3带角度变化的鼠标跟随
onClipEvent(load){stop();}
onClipEvent(mouseDown){
play();
_x+=(_root._xmouse-_x)/3;
_y+=(_root。
_ymouse—_y)/3;
varxm=_root。
_xmouse-_x;
varym=_root._ymouse—_y;
_rotation=Math。
atan(ym/xm)*360/(2*Math.PI)
//向鼠标的方向旋转
if(xm〉0){_xscale=-100;}else{_xscale=100;}
//如果鼠标在右侧,则翻转180度,否则不翻转
}onClipEvent(mouseUp){stop();}
实例3getCode方法获得键盘代码
onClipEvent(keyDown){
trace(Key.getCode())}//显示按键Ascii值;on事件无法完成此操作
事件处理函数
说明
onLoad
在影片剪辑被实例化并显示在时间轴上时调用
onUnload
在影片剪辑被从时间轴上删除后的第一帧中调用
onEnterFrame
以SWF文件的帧频持续调用
onMouseMove
移动鼠标时调用
onMouseDown
按下鼠标左键时调用
onMouseUp
释放鼠标左键时调用
onKeyDown
按下按键时调用
onKeyUp
释放按键时调用
onData
当所用数据都加载到影片剪辑时调用
onPress
在影片剪辑上按下鼠标左键时调用
onRelease
在影片剪辑上按下鼠标左键并释放时调用
onReleaseOutside
在影片剪辑上按下鼠标左键然后将鼠标移出并释放左键时调用
onRollOver
当鼠标指针从影片剪辑外移到影片剪辑上时调用
onRollOut
当鼠标指针从影片剪辑上移到影片剪辑外时调用
onDragOver
在影片剪辑外按下鼠标左键然后将鼠标指针拖到影片剪辑上时调用
onDragOut
在影片剪辑上按下鼠标左键然后将鼠标指针拖出影片剪辑时调用
onSetFocus
当影片剪辑具有输入焦点而且释放某按键时调用
onKillFocus
当从影片剪辑移除焦点时调用
实例4onMouseMove函数实现鼠标跟随(在帧上加语句)
建立几个影片剪辑,命名为n1---n9
n1。
onEnterFrame=function(){
this。
_x+=(_root._xmouse-this。
_x)/5;
this._y+=(_root。
_ymouse—this._y)/5;}
for(vari=2;i〈=9;i++){
_root[”n”+i].onMouseMove=function(){
this._x+=(_root["n"+(this._name.substring
(1)—1)]._x-this。
_x)/5;
this._y+=(_root["n"+(this._name。
substring
(1)-1)]._y-this._y)/5;}}
实例5onEnterFrame函数实现图片悬停
将一系列图片建成影片剪辑,调入到舞台,水平分布
for(variin_root){//遍历主时间轴中的所有对象
_root[i].onEnterFrame=function(){//在本事件中令每个对象左移5像素
this。
_x—=5;
if(this。
_x<=—170){//当实例的x位置超过—200时
this。
_x+=895;}}//使图片放到右端
_root[i].onRollOver=function(){
for(varjin_root)//in和_root之间有个空格
{delete_root[j].onEnterFrame;}}
_root[i].onRollOut=function(){//在本事件中令每个对象左移5像素
for(varjin_root){
_root[j].onEnterFrame=function(){//在本事件中令每个对象左移5像素
this._x-=5;
if(this._x<=—170){//当实例的x位置超过-200时
this。
_x+=895;}}}}}//使图片放到右端
实例:
实行无限循环的方法P53
实例:
符合键控制图片的移动P59
onEnterFrame=function(){
if(Key.isDown(Key.CONTROL)){
if(Key。
isDown(Key.LEFT)){
pic。
_x—=20;}
if(Key。
isDown(Key。
RIGHT)){
pic。
_x+=20;}}}
下边两段程序的不同在于:
if(Key.isDown(Key.RIGHT)){
pic。
_x+=20;
onEnterFrame=function(){//按一下RIGHT键,则移动一次
if(Key.getCode()==Key。
RIGHT){
pic._x+=20;
}}//按一下RIGHT键,则一直移动
实例:
getAscii方法制作打字游戏P60
varchars=newArray();
for(vari=0;i<10;i++){chars[i]=i+48}
for(vari=0;i<26;i++){chars[i+10]=i+65;chars[i+36]=i+97}
functiongenerate()//generate函数用于生成随机字符
{ttt。
text="";
for(vari=0;i〈400;i++){rnd=Math.floor(62*Math。
random());
ttt。
text+=String.fromCharCode(chars[rnd])}}
anniu.onPress=generate;//将函数generate设为单击按钮的事件处理函数
_root。
onKeyDown=function(){
if(String。
fromCharCode(Key。
getAscii())==ttt。
text。
substring(0,1)){
ttt.text=ttt.text.substring
(1);
if(ttt.text==""){generate();}}};
Key.addListener(_root)
实例:
替换鼠标指针P62未完成
在要替换的指针上写上代码:
onClipEvent(mouseMove)
{_x=_root。
_xmouse;
_y=_root。
_ymouse;}
在帧上写上代码
Mouse.hide()//影藏鼠标指针
实例:
自定义鼠标右键
七、影片剪辑
1。
影片剪辑的属性
属性
说明
属性
说明
_name
实例名称
_totalframes
总帧数
_x
x坐标位置
_framesloaded
已经加载的帧数
_y
y坐标位置
_url
所在swf文件URL
_rotation
旋转角度
_highquality
swf文件呈现的品质
_alpha
透明度
_focustrect
焦点时有无黄色矩形
_visible
可见性
_soundbuftime
声音缓冲的秒数
_width
宽度
enabled
是否启用的状态
_heigth
高度
menu
关联的ContextMenu
_xscale
水平缩放百分比
hitArea
点击区域
_yscale
竖直缩放百分比
focuEnabled
是否能够接受焦点
_xmouse
鼠标指针的x坐标
tabIndex
Tab键顺序
_ymouse
鼠标指针的y坐标
tabEnabled
是否具有Tab键顺序
_parent
父级影片剪辑
tabChildren
子级有无Tab键顺序
_target
实例的目标路径
trackAsMenu
可否接收release事件
_currentframe
播放头所在的当前帧
useHandCursor
是否显示手型光标
实例:
通过_rotation属性旋转对象
onEnterFrame=function()
{hh._rotation+=0。
01;mm。
_rotation+=0。
6;ss。
_rotation+=36}
实例:
通过_rotation属性制作鼠标旋转跟随
gg._x=aq._x
gg。
_y=qq._y
gg.onEnterFrame=function()
{i=_root._xmouse-this。
_x;j=_root。
_ymouse-this._y;
if(i<0){this._rotation=Math。
atan(j/i)*360/(2*Math.PI)}
else{this。
_rotation=Math.atan(j/i)*360/(2*Math.PI)+180}}
2。
透明度和可见性
实例:
通过_alpha属性实现图片渐入渐出
tt。
stop()
onMouseDown=function()//鼠标按下事件(换图)
{tt。
onEnterFrame=function()
{this。
_alpha—
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FlashAS20 代码 大全