
动作脚本知识回顾课件.ppt
41页Flash动作脚本知识归纳,,主要内容,注意事项 全屏与退出 控制跳转播放 帧脚本 按钮(或影片)脚本 按钮隐藏与禁用 影片加载方法 元件实例属性 元件实例拖动 坐标定位方法 交互反馈方法 动态文本与输入文本,加载外部声音文件 音量调整 检测音乐是否播放完毕 判断影片剪辑是否播放完毕 判断影片剪辑是否加载完毕 自定义函数 记录点击次数给变量赋值 延时控制 复制与删除影片剪辑 调用EXE或其他格式文件 多分支结构案例(影片倒放) 键盘检测,注意事项,在flash文档中, 所有的实例名、变量均不能重复 需要区分大小写 标点需为英文状态 蓝色字母是内部关键字,不能作为自定义变量或者实例名使用,全屏与退出,fscommand(“fullscreen”, “true”);//全屏,放置于文档第一帧 fscommand(“quit”);//退出,放置于片尾最后一帧,或者添加到退出按钮 注意:只有独立播放器才可以全屏与退出命令,测试状态或浏览器不可以全屏与退出控制播放,play();//当前时间轴播放 stop();//当前时间轴停止 b.play();//影片剪辑b播放,b为实例名 b.stop();//影片剪辑b停止,b为实例名 _root.play();//主时间轴播放 _root.stop();//主时间轴停止 (场景对应的时间轴称为主时间轴),控制播放,gotoAndStop(b);//当前时间轴跳到b帧停止 gotoAndPlay(b); //当前时间轴跳到b帧播放 gotoAndPlay(c); //当前时间轴跳到帧标签为c的帧播放 _root.gotoAndStop(b); //主时间轴跳到b帧停止 _root.mc.gotoAndStop(b); //放在场景的影片剪辑mc跳到b帧停止,帧脚本,帧脚本指放在时间轴上的脚本,时间轴上显示a字母 例如实现按钮功能的方法: a2.onPress=function () 按下时执行动作 a2.onRelease=function () 释放时执行动作 注:a2为按钮实例名,,按钮(或影片剪辑)脚本,on (release) 释放时执行动作 on (press) 按下时执行动作 脚本必须在选中按钮实例后再添加,as3.0不支持此类型脚本。
按钮隐藏与禁用,是否可见 button._visible=true;//false表示不可见 是否可用 button.enabled=true; //false表示不可点击 Button为按钮实例名,影片加载方法,加载到层级 loadMovieNum(a.swf, 2); 与主画面左上角对齐, 2表示层级,叠加在主画面上面2层 此数字可改变,数字越大叠加的层级越高;为0时代替原来的影片 卸载该层级的影片 unLoadMovieNum( 2);,影片加载方法,加载到影片剪辑 loadMovie(“b.swf”, “mc2”);代替原来的mc2的内容,与mc2左上角对齐 可通过控制mc来改变加载的影片,如画面缩放、播放等利用变量加载影片,b=1; loadMovieNum(paowuxian+b+.swf, 2); //表示将paowuxian1.swf加载到层级2 b=paowuxian; loadMovie (b+.swf, mc2); //表示将paowuxian.swf加载到目标mc2,元件实例属性,水平缩放比例 mc2._xscale=20;//数值为百分比 垂直缩放比例 mc2._yscale=20;注:mc2为按钮或影片剪辑实例名, loadMovie加载到目标mc2的影片视为mc2,元件实例属性,透明度 a._ alpha=100;//可以为0至100的整数 宽度和高度 a._width=250; //数值表示像素 a._height=350; 旋转角度 a._rotation=90;//数值表示旋转角度,正表示顺时针方向,元件实例拖动,开始拖动 a2.onPress=function () startDrag(a2); 停止拖动 a2.onRelease=function () stopDrag(); 注:a2为按钮或影片剪辑实例名,按下a2可拖动释放停止拖动,坐标定位方法1,读取元件实例的坐标 ax=a2._x; ay=a2._y; 改变元件实例的坐标 c2._x=cx; c2._y=cy;注:a2和c2为按钮或影片剪辑实例名,坐标定位方法2,鼠标位置坐标(只能读取) a1=_root._xmouse; a2=_root._ymouse; 注: a1、 a2为变量名,交互反馈方法1,计算坐标变化,再利用变量控制mc的播放button.onPress=function() a=_root._ymouse;//求按钮按下瞬间的鼠标位置 onEnterFrame=function()//重复以下 b=Math.ceil((_root._ymouse-a) / button._height*100); //计算鼠标移动范围变为正负100以内的整数,往下拖动为正值,往上拖动为负值 _root.mc.gotoAndStop(b);//mc跳到b帧停止 ,交互反馈方法2,条件判断语句 if( 条件 ) 符合条件的动作 else 不符合条件的动作 注:==等于,=大于等于,<=小于大于,交互反馈方法2,影片碰撞测试 if( mc2.hitTest (mc1) ) a=碰撞了! else a=还没碰撞! //其中a为变量名,hitTest前面必须是影片剪辑实例名,动态文本,动态文本框和变量名,以下例子 if( mc2.hitTest (mc1) ) a=碰撞了! else a=还没碰撞! 如果将舞台上的动态文本框的变量名设为a,则文本框的文字会改变。
输入文本,假设输入文本框的实例名为a1,变量名为c;要读取输入文本框的信息,并显示在动态文本框中(变量为b); 通过按钮添加 on (release) b=a1.text; //必要时写成 b=Number(a1.text)转为数值型 b=2*b; 在时间轴上添加: c=“请输入数字”; 则测试会出现提示 “请输入数字”,当输入数字后点击按钮则出现计算结果 加载外部声音文件,var song_sound:Sound = new Sound();//定义声音变量song_sound song_sound.loadSound(music/背景音乐.mp3,true); //加载外部声音文件并以流媒体方式播放 注:音乐文件名为“背景音乐.mp3”, 放置于flash文档旁边的music文件夹中链接已导入库的声音,var song_sound:Sound = new Sound();//定义声音变量song_sound song_sound.attachSound(music04); //添加声音music04到变量song_sound中,其中music04为库中音乐的链接标识符 song_sound.start();//音乐开始播放 song_sound.stop();//音乐停止播放,音量调整,zuo=bar._x;//求音量控制条bar左边的x坐标 you=bar._x+bar._width;//求音量控制条bar右边的x坐标 button.onPress=function () startDrag(button,false,zuo,button._y,you,button._y); //拖动按钮,限定拖动范围左到右 //以下为停止拖动 button.onRelease=function () stopDrag(); button.onReleaseOutside=function () stopDrag(); button.onRollOut=function () stopDrag(); ,(接下一页),音量调整,var song_sound:Sound = new Sound();//定义声音变量song_sound.loadSound(music/背景音乐.mp3,true); onEnterFrame=function()//按帧频重复以下语句 var level:Number = Math.ceil((button._x-zuo)/(bar._width)*100); //定义变量level为数值型,计算按钮坐标变化 song_sound.setVolume(level); //调整音量为level的数值 level_txt=level; //动态文本框变量名level_txt,用于显示调整数值 //重复结束标记,(接上一页),检测音乐是否播放完毕,speaker1.onPress=function () //关音乐按钮按下时 song_sound.stop();//音乐停止播放 speaker.onPress=function () //开音乐按钮按下时 song_sound.start();//音乐开始 song_sound.onSoundComplete=function() //音乐播放结束时 song_sound.start(); //音乐继续播放,即循环播放 ,判断影片剪辑是否播放完毕,假如将脚本放置于主时间轴第4帧 if (mc5._currentFrame = mc5._totalframes) //如果mc5的当前帧到达了它总的帧数 gotoAndPlay(5);//时间轴继续 else //否则 gotoAndPlay(3); //时间轴跳到第3帧播放 可以让影片在第3帧和第4帧循环,直到mc5播放完毕才能继续。
想一想,我希望点击一个按钮加载一个影片test.swf到mc中,并让他跳转到第10帧下面的脚本可行吗? on (press) loadMovie(test.swf, mc); mc.gotoAndStop(10); ,判断影片剪辑是否加载完毕,i=0;//添加到时间轴 //以下添加到按钮上 on (press) i+=1; loadMovie(i+.jpg, mc); onEnterFrame=function() a1=mc.getBytesLoaded(); b1=mc.getBytesTotal(); if(a1==b1) mc._width=300; mc._height=200; ,i=0;//添加到时间轴 //以下添加到按钮上 on (press) i+=1; loadMovie(i+.jpg, mc); mc._width=300; mc._height=200; ,看起来正确,但测试不正常的脚本,正确的脚本(有加载检测),自定义函数,function f(x) //定义函数名为f(x),x为变量 y=2*x*x+5*x+6; //定义函数内容 //自定义函数结束 a2.onPress=function ()// a2按钮按下时 x=a1.text; //读取输入文本的数字 f(x) ; //执行函数 trace(y);输出结果 ,自定义函数,function f(x) //定义函数名为f(x),其中x为变量 y=2*x*x+5*x+6; //定义函数内容 x1=200+x; y1= 400+y/-100; //自定义函数结束 a2.onPress=function ()// a2按钮按下时 x=-100; onEnterFrame=function () x+=1; if(x=100)x=100 f(x) ; //调用自定义函数 a3._x=x1; a3._y=y1; ,记录点击次数给变量赋值,i=0; b.onPress=function () i+=1; t=a+i; s=zhu; set(t,s); 第1次按下b按钮时,将字符串“zhu”写入a1; 第2次按下b按钮时,将字符串“zhu”写入a2; 第3次按下b按钮时,将字符串“zhu”写入a3; 如此类推。












