




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复制影片剪辑、深入 startDrag()与 stopDrag()、for循环.txt真正的好朋友并不是在一起有说不完的话题,而是在一起就算不说话也不会觉得尴尬。你在看别人的同时,你也是别人眼中的风景。要走好明天的路,必须记住昨天走过的路,思索今天正在走着的路。7、FLASH脚本复制影片剪辑、深入 startDrag()与 stopDrag()、for循环 十九、复制影片剪辑duplicateMovieClip()函数 duplicateMovieClip()函数的作用是通过复制创建的影片剪辑的实例。在 Flash作品中常见的 倾盆大雨、雪花飘飘、繁星点点等动画特效,就是利用 duplicateMovieClip()函数的功能来 实现的。 脚本位置:全局函数|影片剪辑控制|duplicateMovieClip 语法格式: duplicateMovieclip(目标、新实例名称、深度); 参数意义: ? 目标:target:Object - 要复制的影片剪辑的目标路径。此参数可以是一个字符串(例如 my_mc),也可以是对影片剪辑实例的直接引用(例如 my_mc)。能够接受一种以上数据 类型的参数以 Object 类型列出。 ? 新实例名称:newname:String- 所复制的影片剪辑的唯一标识符。 ? 深度:depth:Number - 所复制的影片剪辑的唯一深度级别。深度级别是所复制的影片剪 辑的堆叠顺序。这种堆叠顺序很像时间轴中图层的堆叠顺序;较低深度级别的影片剪辑隐藏 在较高堆叠顺序的剪辑之下。必须为每个所复制的影片剪辑分配一个唯一的深度级别,以防 止它替换已占用深度上的 SWF 文件。函数:当 SWF 文件正在播放时,创建一个影片剪辑的实例。无论播放头在原始影片剪辑 中处于什么位置,在重复的影片剪辑中,播放头始终从第 1 帧开始。原始影片剪辑中的变 量不会复制到重复的影片剪辑中。 在使用 duplicateMovieClip()函数时,需要注意以下几点。 (1)复制得到的影片剪辑保持父级影片剪辑原来的所有属性,所以,原来的影片剪辑是静 止的,复制后的影片剪辑也是静止的,并且一个叠放在另一个上。如果不给它们设置不同坐 标,就只能看到编号最大的影片剪辑复本,而看不出复制的效果。 (2)原来的影片剪辑在做补间运动,那么复制品也要做同样的运动,并且无论播放头在原 始影片剪辑(或“父”级)中处于什么位置,复制的影片剪辑播放头始终从第上帧开始。所以, 复制品和原影片剪辑始终有个时间差,因此,即使不给复制得到的影片剪辑实例设置坐标, 也可以看到复制品在运动。 ( 3 ) 复制得到的影片剪辑实例经常要与影片剪辑属性控制 ( 特别是 _x,_y,_alpha,_rotation,_xscale,_yscale等属性的控制)结合才能更好地发挥复制效果。 removeMovieClip()函数 通过 duplicateMovieClip()函数产生的实例可以通过removeMovieClip()函数进行删除 。 removeMovieClip()函数的一般形式为: removeMovieClip(实例名) 复制与删除) (1) 在舞台上绘制一朵小花,按 F8 键转化为影片剪辑元件。并建立实例名“mc” 。 (2) 插入“图层 2”在此图层的第 1 帧输入代码: var i=0 在场景中建立两个按钮,(复制按钮和删除按钮)。分别在两个按钮上输入代码: on (press) i+; if (i=1) removeMovieClip(mc+i); else i = 1; i-; attachMovie() 脚本位置:ActionScript 2.0 影片|MovieClip |方法|attachMovie 语法格式: attachMovie(目标, 新实例名, 深度, 对象参数) 说明:这条语句中的四个参数,第四个参数是可选,如果不使用第四个参数,那么它的参数 设置同 duplicateMovieClip()是一样的,但也有一点区别,在 attachMovie()函数中的第一 个参数只能是字符串类型。而 duplicateMovieClip()的第一个参数,可以是一个字符串,也 可以是对影片剪辑实例的直接引用。 attachMovie()语句与 duplicateMovieClip()相比,优点是 attachMovie()复制的“目标”是 库中 要附加到舞台上某影片剪辑的影片剪辑元件的链接名称。 这是在 “链接属性” 对话框中的 “标 识符”字段中输入的名称。 在上例中我们可以这样来什么时候修改 (1) 把舞台上小花实例删除。 (2)打开库,右键单击库中的花实例,在弹出的链接属性对话框中,把作为 Actionscript 导 出选项选中,在标识符栏输入“mc” 。 在复制按钮上把语句改为: on (press) i+; if (i=12) attachMovie(mc, mc+i, i); else i = 12; _rootmc+i._x = 275+120*Math.sin(i*1/6*Math.PI); _rootmc+i._y = 180+120*Math.cos(i*1/6*Math.PI); 梅花 (1) 打开素材源文件。 打开库, 分别右键点击落三朵梅花, 在链接属性对话框中输入 标识符 “h0” 、 “h1” 、 “h2”. (2)分别进入小花影片剪辑编辑区,在最后一帧添加语句: stop(); (3)选中场景中的梅枝影片剪辑元件,打开动作面板添加代码: onClipEvent (load) var i = 0; on (press) i+; var n = random(3); attachMovie(h+n, mc+i, i); thismc+i._x = this._xmouse; thismc+i._y = this._ymouse; thismc+i._rotation = random(5)*(120); 奇妙的线条 (1) 新建一个名称为“线”的的影片剪辑元件。进入其编辑区里,在第一帧上绘制一条笔 触高度为 1 长为 150 的白色线条。利用对齐面板,左对齐、垂直中齐。 (2) 分别在第 10 帧、第 20 帧、第 30 帧、第 40帧插入关键帧。并改变第 10 帧,第 20 帧、第 30 帧上线条的着颜色,然后再把第 1 帧和第 20 帧、第 40 帧上的线条改为线 (3) 新建一个名称为“复制线条”的影片剪辑元件。进入“复制线条”的影片剪辑元件编 辑区里,在“图层 1”的第 1 帧,从库里提进“线条”影片剪辑元件。左对齐、底对齐。 在属性面板里输入实例名“line” 。 (4) 插入“图层 2” ,在此图层写 AS: 第一帧上的 AS: var i = 0; line._visible = 0; 第二帧上的 AS: i+; duplicateMovieClip(line, line+i, i); thisline+i._rotation = i*3; thisline+i._x = 0 thisline+i._y =0 第四帧上的 AS: if (i120) gotoAndPlay(2); else stop(); 说明:在第一帧上初始化变量,在第二帧上复制线条,在第四帧上控制雪花的复制数量,如 果不加控制,就会造成死循环,最后死机。第三帧上的语句可以解释为:如果 i20) k = 1; duplicateMovieClip(_root.mc, mc+k, k); msx = getProperty(_root.ms, _x); msy = getProperty(_root.ms, _y); setProperty(_root.mc, _x, msx-25); setProperty(_root.mc, _y, msy-30); 6制作完毕,测试保存。 提示:Mouse.hide();/隐藏指针 脚本位置:ActionScript2.0 类|影片|Mouse| hide(Mouse.hide 方法) 拼图游戏 1导入一张图片到舞台,调整好大小。选中图片,执行“修改菜单”下的“分离”命令, 然后用“直线工具”把图片 12 等分。 2分别选左上角的第一份,按 F8 键转化为影片剪辑元件,在“转换为元件”对话框中设置元件名为图 1,注册点居中。然后在属性面板里建立实例名为: “mc1” 。 3选中此影片剪辑元件,打开动作面板,输入如下代码: on (press) this.swapDepths(getNextHighestDepth(); startDrag(this, true); on (release, rollOut) stopDrag(); 4用同样的方法制作另外的 11 个影片剪辑。 5制作好后,把场景中的各影片剪辑位置打乱,放在舞台的右边。 6插入“图层 2” ,在些图层的左上角放上原图的缩略图。作为拼图时的参考。 代码解释: (1)swapDepths(MovieClip.swapDepths 方法) 脚本位置:ActionScript2.0 类|影片|MovieClip|swapDepths 功能:交换此影片剪辑与另一影片剪辑的堆栈或深度级别(z-顺序),另一影片剪辑由 target 参数指定, 或指定为当前占用由 target 参数指定的深度级别的影片剪辑。两个影片剪辑必须具有相同 的父级影片 剪辑。 my_mc.swapDepths(depth/target);my_mc1.onRelease=function()this.swapDepths(1);my_mc2.onRelease=function()this.swapDepths(my_mc1);getNextHighestDepth()my_mc.getNextHighestDepth();my_mc._parent.getNextHighestDepth();(2)getNextHighestDepth(MovieClip.getNextHighestDepth 方法) 脚本位置:ActionScript2.0 类|影片|MovieClip| 方法|getNextHighestDepth 功能:以确保 Flash 将该影片剪辑呈现在当前影片剪辑中同一级和同一层上所有其它对象 的前面。 以上两条语句大家想进一步了解,请查看帮助。 示例 12-4 滑条控制 滑条控制是一种很有用的控制方法,比如在 MP3 播放器中,用滑条来控制音量、声道等。下 面我们介绍 一个简单的滑条控制 (1) 打开素材 (2) 双击库中的“滑快 1”影片剪辑元件,进入其编辑区,选中按钮,打开动作面板,添 加代码: on (press) startDrag(this, true, -50,0 , 50, 0); on (release, dragOut) stopDrag(); (3)双击库中的“滑快 2”影片剪辑元件,进入其编辑区,选中按钮,打开动作面板,添 加代码: on (press) startDrag(this, true, 0,-50 , 0, 50); on (release, dragOut) stopDrag(); (4)分别进入“横控制条”和“纵控制条”两个影片剪辑元件的编辑区,分别给两个滑块 建立实例名称: “h_mc1” 和“h_mc2” 。 (5)在场影中给横控制条命名实例名“xbut” ,给横控制条命名实例名“ybut” 。给红 色正方形元件命名实 例名“mc” 。 (6)场景中的动态文本,按从上到下的顺序,在属性面板里依次输入实例名“a_txt” 、 “b_tat” 、 “c_txt” 。 (7)选中红矩形影片剪辑元件,打开用作面板,添加代码: onClipEvent (enterFrame) dx = _root.xbut.h_mc1._x; dy = _root.ybut.h_mc2._y; xx = _root.mc._width=dx+100; yy = _root.mc._height=dy+100; _root.a_txt = xx; _root.b_txt = yy; _root.c_txt = Math.round(xx*yy); 二十一、for循环for 循环语句是功能最强大,使用最灵活的一种循环语句,它不仅可以用于循环次数已经确 定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况。 脚本位置:语句|条件/循环|for 语法格式:for(初始表达式;条件表达式;递增(或递减)表达式)语句块/或者称循环 体 参数意义: ? 初始表达式: 一个在开始循环序列前要计算的表达式, 通常为赋值表达式。 此参数还 允许使用 var 语 句。为赋值表达式时。推荐使用 var 可以使运行加快。其原理主要是使用了本地变量。 ? 条件表达式: 计算结果为 true 或 false 的表达式。在每次循环迭代前计算该条件;当 条件的计算结果为 false 时退出循环。 ? 递增(或递减)表达式: 在每次循环迭代后要计算的表达式;通常为使用 +(递增) 或 -(递减)运算符的赋值表达式。 ? 语句块。在大括号内的所有指令组。统称循环体。 说明:for 语句中的三个表达式,中间用分号隔开。第一个初始表达式通常用来设定语句循环执行次数的变量初值,这个表达式只会执行一次; 第二个条件表达式通常是一个关系表达 式或者逻辑表达式, 用来判定循环是否继续; 第三个递增表达式是每次执行完 “循环体语句” 以后,就会执行的语句,通常都是用来增加或者减少变量初值。 for 语句的执行流程图for 求和 (1) 在场景中制作一个如图的界面(2) 在属性面板里分别给三个动太文本输入为量名“a_txt” 、 “b_txt” 、 “c_txt” (3) 选中按钮,打开动作面板,添加代码: on (release) k1 = 0;k2 = 0; a_txt = 0; b_txt = 0; c_txt = 0; for (i=1; i=100; i += 2) k1 += i; k2 += i+1; a_txt = k1; b_txt = k2; c_txt = k1+k2; 注意: 1用类似形式可以方便的控制循环的次数,此例中,100 就是循环的次数。 2 循环体内可以使用”i”的值参与运算。有时这种参与是非常必要的。 3 三个表达式内部用“;”分割。 提示: (1)for 循环结构的原理如下,它首先计算一次表达式 1,然后按照以下顺序开始循环序 列:只要表达式 2 的计算结果为 true,就执行循环体,然后计算下一个表达式。 使用 for 循环语句的注意事项 1为了使程序效率更高,在初始表达式中使用 var 关键字来声明变量。 2在初始表达式中可以定义多个变量,两个表达式中间用逗号(,)分开,如: for (var i = 1, sun = 0; i=100; i+) sun = sun+i; trace(sun); 3初始表达式也可以省略,但必顺在 for 语句前初始化变量,如: var i=0 var sun = 0; for (; i=100; i+) sun = sun+i; trace(sun); 注意:当省略初始表达式时,其后的分号不能省略。 4递增表达式也可以省略,但必顺保正循环能正常结速,如: var sun = 0; for (var i = 0; i=100; ) sun = sun+i; i += 1; trace(sun);5for 语句中可以同时省略初始表达式和递增表达式,如: var i=1 var sun = 0; for (; i=100;) sun = sun+i; i+=1; trace(sun); 这时程序和 while 完全一样,所以可以用 for 来代替 while 语句,也就是说 for 语句的功 能比 while 语句强大得多。 烟花 本例是实现一个烟花效果。鼠标点击后,会绽放一朵灿烂烟花。而烟花由小流星复制而成。 复制的个数由循环语句来控制的。 1新建文档,背景黑色。其它默认。 2新建一个名为“礼花 1”的影片剪辑元件,在此元件的第 1 帧绘制一个流星式的图形。 3在第 10 帧处插入关键帧,把绘制的图形右移,并适当放大。 4在第 19 帧插入空白关键帧,任意绘制一个图形,位置相对第 10 帧上的图形的右移 5创建每两关键帧之间的形状补间动画。 6在库中右键点击“烟花 1”影片剪辑元件,在快捷菜单中选择“链接”选项,在弹出的 “链接属性”对话框中输入标识符 yh1 7在库中右键点击“烟花 1”影片剪辑元件,在快捷菜单中选择“直接复制 ”选项,在弹 出的“直接复制元件”的对话框中把元件名改为“烟花 2” 。 8用同样的方法在制作另一朵烟花,(颜色与式样最好以第一朵有所区别)并设置标认符为 “yh2” 。 9导入一个烟花声音文件到库,右键点击声音文件,在快捷菜单中选择“链接”选项,在 链接属性对话框中设置声音标识任为“Sound” 。 10建立一个空影片剪辑,拖入场景。场景中它显示为一个空心小白点。用“黑箭头工具” 选中该小白点,打开动作面板,添加 AS 代码: onClipEvent (load) var k = 1; mySound= new Sound();/创建一个声音对象 mySound.attachSound(Sound);/把库中的声音文件附加到所创建的声音对象上 onClipEvent (mouseDown) k=-k; mySound.start();/播放声音 for (var i = 1; i=100; i+) if (k = 1) this.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国瓷砖背景墙行业市场发展监测及投资前景展望报告
- 年产20万吨的超细矿粉生产线可研评测报告
- 2025至2030年中国对三氟甲氧基氯苯行业投资前景及策略咨询研究报告
- 中国小口径无缝管市场供需预测及投资战略研究咨询报告
- 2025至2030年中国哑铃片市场调查研究报告
- 牦牛角梳行业深度研究分析报告(2024-2030版)
- 2025至2030年中国可捨式刀把行业投资前景及策略咨询报告
- 2025至2030年中国变脸拼图行业投资前景及策略咨询报告
- 2025至2030年中国双头圆边机市场现状分析及前景预测报告
- 2025至2030年中国压缩机缸套行业投资前景及策略咨询报告
- 清明节的中医养生和保健方法
- 成人肥胖食养指南2024年版-国家卫健委-202403
- 新生儿头部护理课件
- 如何培养严重精神障碍患者的社交技能和人际交往能力
- 全科医学培养的病例讨论教学
- 智慧数字博物馆建设方案
- 2020年ISH国际高血压实践指南
- 《体育保健学》课件-第三章 运动性病症
- ACS患者救治总流程图
- 防爆检查五十条
- 23秋国家开放大学《小学语文教学研究》形考任务1-5参考答案
评论
0/150
提交评论