Flash实用教程AS进阶部分Word格式文档下载.docx
- 文档编号:18818501
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:26
- 大小:120.13KB
Flash实用教程AS进阶部分Word格式文档下载.docx
《Flash实用教程AS进阶部分Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Flash实用教程AS进阶部分Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
_root.huan_mc.shu_mc.stop();
i=0;
p._visible=1;
}
}
③在另一按钮上输入:
on(release){
_root.huan_mc.play();
_root.huan_mc.shu_mc.play();
p._visible=0;
n++;
m=n%3;
//n模3的值赋给m
if(m==1){
_root.huan_mc.shu_mc._rotation=90;
//shu_mc旋转90度
if(m==2){
_root.huan_mc.shu_mc._rotation=180;
//shu_mc旋转180度
if(m==0){
_root.huan_mc.shu_mc._rotation=0;
//shu_mc保持原角度
(5)小结
本讲虽然没有涉及太多的新知识,但开始着重思路训练,为今后学习打好基础,并开始积累和掌握动作脚本编写方法。
(6)课后练习
利用教程提供的源文件里的影片剪辑“环”,再作一循环按钮,每点击按钮两下分别显示3种不同形态,向前走,向后走,和躺下不动,见效果。
>
练习2-1
FlashAS实例进阶-声音控制
实例2-2声音控制
(1)基本思路
①建立一个可由AS控制声音对象。
②将库中指定的声音附加到这个对象上。
③制作一个有放音和消音图标的MC。
④开始为自动播放,并有放音图标显示。
⑤第一次点击MC后,显示静音图标,存储当前音量值,同时音量设为0。
⑥再次点击,显示放音图标,并为声音对象设置已存储的音量值。
(2)新知识点
mySound=newSound();
//新建一个声音对象,我们这里对象的名称是”sheng”。
mySound.attachSound();
从库中加载声音。
mySound.getBytesLoaded();
获取声音载入的字节数。
mySound.getBytesTotal();
获取声音的总字节数。
mySound.start();
开始播放声音。
括号中若填制整数值,即从声音播放后的这一秒开始播放。
mySound.stop();
停止声音的播放。
mySound.getVolume();
获取当前的音量大小(范围从0-100)。
mySound.setVolume();
设置当前音乐的音量(范围从0-100)。
mySound.duration;
声音的长度。
(单位为毫秒,1000毫秒=1秒)
mySound.position;
声音已播放的毫秒数。
(单位为毫秒)
(3)实例说明
①第一帧插入一个有补间动作的MC“摇椅”。
②导入到库一声音文件,右击该文件,选菜单【链接】,在出现的对话框中进行设置,
如图2-1:
图2-1链接属性面扳
其中的【标识符】即为对象命名,这样程序才能识别和控制,和前面课程讲的为MC注册实例名及duplicateMovieClip后的MC名同理;
【链接】中选中“为动作脚本导出”和“在第一帧导出”,前者是确定要接受动作脚本控制,后者是确定要在生成SWF文件时被导出。
③制作一命名“控制”的有喇叭放音和消音图标的MC,在第一帧初始化,第2帧停止。
(4)编写动作脚本
①在MC“控制”第1帧输入:
i=0;
this.lb2._visible=0;
②在MC“控制”第2帧输入:
stop();
③主时间轴第1帧输入:
sheng=newSound();
//构建一个Sound对象“sheng”
sheng.attachSound("
ge"
);
//将库中的声音文件”ge”加载到声音对象上
sheng.start(3);
//令声音从第3秒开始播放
④最后一帧输入:
if(sheng.position==sheng.duration){//条件为已播放长度等于声音总长度
//从第3秒重新播放
}
gotoAndPlay
(2);
⑤在MC“控制”上输入:
on(release){
if(i==0){
n=_root.sheng.getVolume();
//获取当前的音量值并赋值给变量n
_root.sheng.setVolume(0);
//设置Sound对象的音量为0
this.lb1._visible=0;
this.lb2._visible=1;
i=1;
}else{
_root.sheng.setVolume(n);
//设置Sound对象的音量为n
this.lb1._visible=1;
(5)小结
本讲介绍了Sound类的常用的方法,更多的内容可在帮助文件里查看到,静音是让音量降到0,而不是停止,恢复播放只是要恢复原来的音量,而播放的进度还是不改变的,这节是在MC上用on()事件处理函数实现了和按钮相同的控制效果,MC上使用on()可更灵活多样,MC内部可以嵌套MC,并可以加写动作脚本。
(6)课后练习
制作一个有图标显示的控制声音播放和暂停的实例,要求暂停后再播放要从该点开始,每次播放结束后返回到起始状态,效果范例:
练习2-2
FlashAS实例进阶-打字效果
前面讲了“图”和“声”的一般调理,这节我们开始琢磨“字”,要说这“字”,大号叫文本,还有三种类型:
静态文本、动态文本和输入文本,下面我们就把这三样捏到一起作个综合练习实例。
>
实例2-3打字效果
(1)基本思路
①建一个输入文本,用来键盘输入或复制粘贴一段文字。
②为输入文本制作一滚动条,上下各一个按钮,中间一个“滑块”,“滑块”要和文本同步垂直变动,并相互作用,编写这段脚本可是够累人的。
③建一个动态文本,根据指令来显示输入文本的内容。
④建一个按钮,令动态文本开始“表现”。
⑤在帧上写脚本,让动态文本的按咱要求“演”。
⑥上面只是说到要用输入文本和动态文本,不是说要用3样吗,那在就在按钮上输入“打字”俩字,别看字少,可是用到了一种类型,这下齐了。
(2)新知识点
my_txt.scroll//定义文本在文本字段中的垂直位置。
my_txt.maxscroll;
//my_txt.scroll的最大值。
my_str.substring//返回一个字符串。
arguments.length//实际传递给函数的参数数量。
Math.random()//返回一个0-1之间的随机数。
Math.ceil()//对数字或表达式按进位法取整。
(3)实例说明
①建一输入文本,变量名:
shuru。
②建一动态文本,变量名:
shuchu。
③从公用库中拖入一按钮,点开并插入“打字”二字。
④为输入文本作一滚动条,包括上下按钮和一个类型为MC的“滑块”。
(4)编写动作脚本
①在“打字”按钮上输入:
on(press){
Play();
②在滚动条的向上按钮上输入:
on(release){
shuru.scroll-=1;
//可显示的文本垂直下移一个单位,即向上多看一行。
③在滚动条的向下按钮上输入:
shuru.scroll+=1;
//可显示的文本垂直上移一个单位,即向下多看一行。
④在滚动条的“滑块”上输入:
onClipEvent(load){
shang=this._y;
//设此变量作为“滑块”的初始垂直位置
zuoyou=this._x;
//设此变量作为“滑块”的初始水平位置
N=30;
//设此变量作为“滑块”的垂直位置变动的最大值,本例中其实是一以常量状态存在。
t=0;
//设此变量作为if语句的判断条件
}
onClipEvent(enterFrame){//按帧频循环执行以下动作
if(t==0){满足条件执行此大括号内动作
Ni=(N+2)*(_root.shuru.scroll-1)/(_root.shuru.maxscroll);
//用N乘于当前显示行占总行数的比例,再赋值给变量Ni,其中的“-1”和“+2”是为较准确显示而加的修正值。
this._y=shang+Ni;
//此MC的垂直位置依Ni而变化。
}else{//不满足条件执行此大括号内动作
Ni=this._y-shang;
将当前垂直位置与原始位置的差赋值给Ni
_root.shuru.scroll=Ni/N*(_root.shuru.maxscroll)+1;
//用Ni占N的比例乘于文本的总行数的值赋予现实显示的行数。
nextFrame();
//转到下一帧,这里是为要取得的不同的外观效果。
t=1;
//为if语句判断条件的变量赋新值
startDrag(this,true,zuoyou,shang,zuoyou,shang+N);
//鼠标拖动MC,并限制在括号的设定范围内。
on(release,releaseOutside){
prevFrame();
//转到上一帧
stopDrag();
//停止拖动
//为if语句判断条件的变量赋原值
⑤在“滑块”上的第1帧上输入:
⑥主时间轴第1帧上输入:
shuru="
"
;
//变量初始化后转到下一帧停止。
⑦主时间轴第2帧上输入:
shuchu=shuru.substring(0,i)+"
_"
//将输入文本的字符串变量的的第1个到第i+1个的字符,同时在后面加个"
组成的一个字符串赋给动态文本的变量。
gotoAndPlay(Math.ceil(Math.random()*4)+2);
避免死板显示,将播放头的跳转位置用随机函数值来确定。
shuchu.scroll=shuchu.maxscroll;
//设定显示行,使得动态文本框显示满后向上滚动。
i++;
if(i>
shuru.length){当变量i大于输入文本的总字符数时,执行以下命令。
⑧主时间轴最后一帧上输入:
gotoAndPlay(2);
(5)要点分析
①这里的输入文本“滚动条”实现了交互性功能,“滚动条”由3部分组成,上下各一个按钮,中间一个“滑块”,当用上下按钮改变文本的垂直位置时,中间的滚动条自动变化,当按住“滑块”的时候可以在确定的范围呢拖动,文本位置也相应变化,其工作原理就是用一变量判断后执行,取文本位置后改变“滑块”位置,还是取“滑块”位置后改变文本位置。
②shuchu=shuru.substring(0,i),是变量“shuchu”取得截自变量“shuru”的一段字符串,substring()在小扩号里的参数,前一个是字符串中字符的索引号,从0-—n-1,n是字符总数,如这个字符串有5个字符,索引号则是0、1、2、3、4,这和以后要学习的数组索引是一样的;
后一个参数是要获取的字符个数,如字符串有5个字符,,当此参数设定为5则全部获得,因为此实例用变量i作为参数,且是以1为步长递增的,每循环一次就多显示一个字,看的效果是象打出一个新字,其实是m+1个字段长的字符串覆盖了m个字段长的字符串。
③gotoAndPlay(Math.ceil(Math.random()*4)+2),其中的(Math.ceil(Math.random()*4就是要取得一个0-4的随机整数,过去我们用random(value),但人家软件说不鼓励在Flash5中使用,咱就跟着新的走。
添点麻烦来gotoAndPlay,就是为有点快慢不一样,象打字那回事似的。
(6)小结
本讲介绍了输入文本和动态文本,应该说讲了普通的使用方法,好多的设置都是在属性面板里完成的,只是用脚本控制字符文本的显示,而全AS及更复杂控制就要用TextField类。
这个实例的输入文本滚动条对学习脚本编写应该有一定的启发作用,其实用组件有现成的,因为现在要用我们前面学到的知识来完成,才要这样写,而且对今后的应用也可能有帮助,同样的原理可以控制影片和音乐的进度等。
(7)课后练习
修改源文件,让动态文本不是一个字一个字的显示,而是一行行显示,范例效果:
练习2-3
FlashAS实例进阶-导航条
导航条也是菜单的一种,是网页上普遍都用到的一个种便捷的翻阅形式,形式多种多样,我们这里是一个简单的实例。
>
实例2-4导航条
(1)基本思路
①作几个标签,类型为MC,上面有文字标识,是嵌套在标签里的MC,鼠标滑过时可以改变字的大小。
②作一类型为MC的光标,给其加动作,可以“弹性”地向某点靠近,弹性这词,也是网上学的,意思就是移动方式不要一步到位,避免呆板,就是为好看嘛。
③当鼠标滑过某一个标签,光标就以颜色和宽度变化的形态逐步向这点靠近。
④单击标签都有一个链接地址被打开,转向指定的页面。
⑤设定限制,当鼠标移出范围后,光标以初始形态停在最后滑过的标签上。
||//逻辑或,若干条件,有一条够格就是真。
&
&
//逻辑与,要同时满足所有的条件才为真。
getURL()//将来自特定URL的文档加载到窗口中,URL是WWW页的地址。
①主场景中水平排开外观一致的MC类型的标签,嵌套在标签里的文字也是MC,这里分别是:
首页、二页、三页、四页。
②用外形和标签同样大的MC作为光标,内部有形状补间,第1帧要设定stop。
(4)编写动作脚本
①在标签MC上输入:
on(rollOver){//鼠标滑过
h=1;
_root.newx=this._x;
//将这MC的坐标X的值赋与_root.newx
on(rollOut){鼠标滑出
h=0;
onClipEvent(enterFrame){//以帧频频率执行以下动作
if(h==1){当变量h等于1,就是鼠标滑过此MC时,执行以下动作
0&
i<
21){i同时满足大于0,小于21的条件
this.z._xscale=100+i*1.8;
//嵌套在此MC里的“z”水平比例增加i*1.8
this.z._yscale=100+i*1.8;
//嵌套在此MC里的“z”垂直比例增加i*1.8
_root.mc._xscale=100-i*10;
//主场景的“mc”水平比例减少i*10
_root.mc.play();
}else{当变量h不等于1,就是鼠标滑出此MC时,执行以下动作
1&
22){
//嵌套在此MC里的“z”水平比例减少i*1.8
//嵌套在此MC里的“z”垂直比例减少i*1.8
i--;
getURL("
"
_blank"
//得到一个地址并打开新窗口,这里是第一个标签的,其它标签要根椐需要另设。
②在光标MC上输入:
root.newx=this._x;
//设一变量取得此MC的横坐标点
onClipEvent(enterFrame){
this._x=this._x+(_root.newx-this._x)/5;
//不断地将变量newx与MC的横坐标值的差的1/5加上MC的横坐标值,赋值到新的MC的横坐标值,变量newx与MC的横坐标值的差是在趋于0的变化中。
if(_root._ymouse>
75||_root._ymouse<
25||_root._xmouse<
12||_root._xmouse>
534){//满足其中的任一条件,就执行后面语句,为的是避免在光标变化过程中鼠标移出后有没展开的状态.
this._xscale=100;
(5)要点分析
①this._x=this._x+(_root.newx-this._x)/5,一个缓冲移动公式,是不断地将变量newx与MC的横坐标值的差的1/5加上MC的横坐标值,赋值到新的MC的横坐标值,变量newx与MC的横坐标值的差是在趋于0的变化中,这样就可实现逐步靠近目标的效果。
应该彻底理解,还可以用具体的数值代入公式中,那样对分析理解其作用,是比较简便的方法,熟练掌握后还可以增加抖动率(一个由大逐渐变小直至0的的一个变量),看着有哆了哆嗦的效果,会更好看。
②if(_root._ymouse>
534),“逻辑或”条件判断,满足其中的任一条件,就执行后面语句,这里是为的避免在光标变化过程中鼠标移出后有没展开的状态,因为光标在移动过程中有宽度变化。
本讲介绍了复合判断条件的使用,和使用连接地址的方法,还应用到了移动公式:
this._x=this._x+(_root.newx-this._x)/n;
都是经常要用得到的,需要熟练掌握。
将标签排列由横向改为纵向,范例效果:
练习2-4
FlashAS实例进阶-图片滚动效果
网上浏览,我们会看到形形色色的有图片滚动的菜单、横幅及广告,尽管效果基本相同,但因为编写者的思路各异,所以脚本的繁易差异也很大,这里介绍的是一个脚本非常简单的实例。
实例2-5图片滚动
基本思路
①在MC的中心点的左右两侧,同时摆放相同的一组图片,中心点也是首尾相接处
②测得鼠标和场景水平中心点的距离,判断MC向左或右及以怎样速度运动。
③当MC左端抵场景左端或MC右端抵场景右端时,令MC回到一定位置,实现持续循环滚动
新知识点
Stage.width//场景的宽度,是随意老师教我的,我找半天都没找到。
Stage.height//场景的高度,练习要用到。
MovieClip._width//MC的宽度。
MovieClip._height//MC的高度。
实例说明
①在MC注册点的左右都摆放同一组图片,在主场景中若MC运动到边端时刻,即由中心点替代,播放影片时看图片是一致的,但又不是尽头,会形成循环播放的效果。
②取得场景和MC的宽度,以进行计算比较,用鼠标偏离场景水平中线的距离作MC移动的参数,当鼠标正在此线,数值为0,MC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flash 实用教程 AS 进阶 部分
![提示](https://static.bdocx.com/images/bang_tan.gif)