1、FLASH脚本-点语法以及路径、深入了解时间控制、无条件转移 2010-09-26 15:57:57| 分类: AS2.0课堂 | 标签:flash教程 |字号 订阅 十、点语法以及路径 点(.)语法、 路径 通过本节的学习要掌握(.);能正确地输入影片剪辑的实例名称;理解相对路径和绝对路径的概念,理解分层结构中的包含关系和并列关系。 点(.)语法 动作脚本中,点(.)通常用于指定对象或影片剪辑相关联的属性或方法,或者标识影片剪辑、变量、数对象的目标路径。点语法表达式是以对象或影片剪辑的名称开始,后跟一个点,最后以要指定的元素结束。 例如: (1)张
2、三的身高。这句话用 AS 语言表示为:张三.身高 (2)安徽合肥中澳学院。这句话用 AS 语言表示为:安徽.合肥.中澳学院 元件命名 在上面的例子中, “张三”是人名, “身高”是他的属性,那么,在 FLASH 中怎么样用 AS 语言来表示一个影片剪辑的高度呢?类似地我们要给影片剪辑取一个名称,如果在主场景中有放入一个影片剪辑,那么这个影片剪辑相对于场景是场景的一个实例,在场景中选中影片剪辑就可以在属性面板中键入实例名。 好了,小球有了实例名称了,我们现在来表示它的高度(_height)。 注意: 在命名实例名时,最好意义明确,可以用英文、汉语拼音和中文,并且不同类型的
3、元件加不同的前后缀,在实际编程中我们往往不太注意这些,规范的命名不仅容易阅读,还能为其增加一些特定的后缀触发代码提示。 命名影片剪辑实例;加 _mc 后缀,例如 my_mc。 命名按钮时,应使用 _btn 后缀。例如 my_btn.。 命名文本时,应使用 _txt 后缀。例如 my_txt。 例如上例中小球的实例名如果加上后缀_mc就会出现影片剪辑属性的代码提示 安徽.合肥.中澳学院 小球._height 张三.身高 路径 “路径”指“道路”,“路线”其含义是:如何到达目的地,这个目的地叫做路径的目标, 在 flash 中 引用了目标路径的概念,目标路径
4、是 SWF 文件中影片剪辑实例名称,变量和对象的分层结构地址。 ? 目标:指的是将要被动作脚本控制的对象,有影片剪辑实例,变量等。 ? 路径:指如何到达目标,即我们如何从控制点到达被控制点。 ? 分层结构:flash文件是有一个个影片或影片剪辑组成的,它们有各自的时间轴、变量、数组等,它们的位置关系有两种,一是父子关系;二是并列关系。 所谓父子关系指的是包含与被包含的关系,例如: 把影片剪辑 mc1 拖放到影片剪辑 mc中,则称 mc1 是 mc 的子级,反过来 mc称作 mc1 的父级。它们的层次结构用点语法表示,圆点前面的对象包含着圆点后面的对象,如_root.mc.mc
5、1 即_root 包含了mc,而 mc包含了 mc1。 所谓并列关系指的是对等的关系,它们之间没有包含与被包含的关系,如:_root.mc_a 和 _root.mc_b。 在 flash 应用中,可以从 1 个时间轴向另一个时间轴发送信息,发送信息的时间轴叫控制 时间轴,接 收信息的时间轴叫目标时间轴。也就是说控制时间轴发出的命令可以控制目标时间轴的动作。要实现这种 控制功能必须编写目标路径。目标路径分为绝对路径和相对路径。 绝对路径 绝对目标路径指的是从根时间轴开始,一直延续到列表中目标时间轴中的实例为止。 绝对目标路径简单易懂但重用性差。 在编写绝对目标
6、路径时,首先写上_root,一方面表示这个路径是一个绝对路径,另一方面表示这个路径的最顶层时间轴是本场景中的根时间轴_root。 相对路径 相对目标路径取决于控制时间轴和目标时间轴之间的关系, 相对目标路径就是站在控制点去看被控制点。 若向父级方向看也就是向根时间轴方向看, 在相对路径中,使用关键字 this 指示当前时间轴:使用别名_parent 指示当前时间轴的父级时间轴,可以重复使用_parent,每使用一次就会在同一层的影片剪辑的层次中上升一级,有多少元件就写多少_parent,若向下看只需要用点运算符,中间有多少元件就写多少实例名。 例如: this._parent
7、 this._parent._parent this.mc.mc1 编写目标路径的方法 在 Flash8 中可以用多种方法编与目标路径,直接手工输路径,或者使用“插入 目标路径”对话框。我们只需要为影片剪辑和变量等正确的输入名称,使用动作脚本面板的“插入目标路径”按钮,找到你要控制的对象即可。 其具体步骤如下: (1)选择想为其分配动作的影片剪辑,帧或按钮实例,它将变为控制时间轴。 (2)在“动作”工具箱(面板左侧)中选择需要目标路径的动作或方法。 (3)单击动作脚本中想插入目标路径的参数框或位置。 (4)单击动作脚本编辑窗格上面的“插入目标路径”按钮
8、打开“插入目标路径”对话框。 (5)选择“绝对”或“相关”目标路径模式。 (6)在“插入目标路径”显示列表中选择一个影片剪辑,单击“确定” 。 观察目标路径 由上图在以看出影片剪辑之间的分层结构:mc 中包含了两个子级 mcA、mcB;而 mcA 中又包含了三 个子级 mc1、mc2、mc3。 按 F9 打开动作面板,点击“插入目标路径”按钮后,在弹出的“插入目标路径”对话框中我们可以 清楚地看到分层结构。 当我们选中一个目标后,再选择“相对”或“绝对”按钮后,在“插入目标路径”对话框的最上面一栏里就会显示出路径,例如:控制点为 mcA,控制目标为 mc
9、1,路径为: 相对路径:this.mc1 绝对路径:_root.mc.mcA.mc1 十一、深入了解时间轴控制 通过本课的学习,掌握在按钮上添加代码的方法;理解 on 命令的函数功能; 掌握时间轴控制命令的功能,语法格式,掌握在帧上添加命令基本操作,能使 用帧命令和按钮命令控制一些简单的时间轴动画。 on 事件处理函数 事件是指软件或硬件发生的事情,它需 Macromedia Flash 的应用程序对事件有一定的 响应。硬件发生的事件如按下鼠标、单击鼠标、拖动鼠标等。软件发生的事件如影片剪辑刚刚被载入场景、影片剪辑被卸载等。为了使应用程序对事件做出反应
10、必须使用事件处 理函数。 下面我们就来学习 on 事件外理函数。双击代码选择区中的“全局函数”|“影片剪辑控制” |“on”命令后,弹出选项On 事件动作使用较多,它一般直接作用于按钮,也可以作用于影片剪辑实例。 其调用格式如下: 理解 on 事件中的参数意义: 在创建一个动态文本,在属性面板里输入变量名:txt.再创建一个按钮实例,选中按钮, 打开动作脚本面板输入代码: on (press) { txt = "发生了鼠标按下(press)事件"; } on (release) { txt = "发生了鼠标释放(release)事件"; } o
11、n (releaseOutside) { txt = "发生了鼠标外部释放"+newline+"(releaseOutside)事件"; } on (rollOver) { txt = "发生了鼠标滑过(rollOver)事件"; } on (rollOut) { txt = "发生了鼠标滑离(rollOutr)事件"; } on (dragOver) { txt = "发生了鼠标拖过(dragOver)事件"; } on (dragOut) { txt = "发生了鼠标拖离(dragOut)事件"; } on (keyPress "<
12、Left>") {
txt = "发生了按左键事件"+newline+"(keyPress\"
13、点击“全局函数”“时间轴控制”我们会看到时间轴控 9 条时间轴控制命令在这一课中我们将分别介绍它们的功能及使用方法。 play( ) 与 stop () play 和 stop 在 Flash 中用于控制动画的播放和停止,play 命令使播放头从它当前位置向前移动。stop 停止当前正在播放的 SWF 文件。此动作最通常的用法是用按钮控制影片剪辑。是 Flash中控制动画最基本的命令。 使用方法如下:路径.play() 路径.stop() 帧命令 我们知道一个有动画的影片剪辑,场景时间轴只有一帧 这个影片剪辑也能正常播放,但如果是图形元
14、件中做的动画,在场景中必须有与元件时轴同样的帧频数才能正常播放。这就说明了影片剪辑有独立的时间轴。而图形元件的时间轴必须依赖父级时间轴,所以,场影中的影片剪辑实例, 必须控制影片剪辑的时间轴。 要在场景中控制影片剪辑的时间轴, 就要给影片剪辑输入实例名称。 下面我们做一个实例,通过该例,我们来掌握在帧上添加命令的方法,初步了解控制当前时间、根时间轴控制元件时间。元件时间轴控元件时间轴的方法。 我们播放动画时,可以看到每个动画都是动的,现在我们来进行控制。 (1)打开素材, 分别选中场景中的小花, 和树叶, 在属性面板里输入实例名“花” “叶” 。 (2) 进入名称为“叶引导线”
15、的影片剪辑元件的编辑区中,点击“AS 层”的第 1帧打开动作面板。输入命令: stop();//停时当前时间轴 在第 50 帧插入空白关键帧,选中此帧,打开动作面板,输入命令: this._parent.play();//父级时间轴(根时间轴) 播放在主场景“AS 层”的第 1 帧,添加命令: this.花.play()//当时间轴中的影片剪辑实例"花"播放 在主场景“AS 层”的第 170 帧添加命令: stop();//停止当前时间轴 this.叶.play();//当前时间轴中的实例"叶"播放 测试影片看看效果。 总结:通
16、过本课学习,要掌握自身时间轴的控制,子级时间轴的控制,父级时间轴的控制,对初学的朋友,最简单的方法是:正解输入实例名后,通过“插 入目标对话框,找到你的控制目标,这时软件会自动给你编写好路径,你只需在 路径后面加上一个小点“.”然后加 上 stop()或 play()命令。 帧命令是播放头来触发的,播放头经过你的命令帧,这帧上的命令就被执行了。 按钮的交互控制 我们利用此动画练习在不同的控制点上来控制影片。现在我们任意选两个控制点,如果选择 mcA 中放一个停按钮,mc1 中放一个播放按钮,用这两个按钮来控制所有影片剪辑。 停止按钮上的代码 : on (pres
17、s) { _root.mc.stop(); _root.mc.mcA.stop(); _root.mc.mcB.stop(); _root.mc.mcA.mc1.stop(); _root.mc.mcA.mc2.stop(); _root.mc.mcA.mc3.stop(); } 播放按钮上的代码: on (press) { _root.mc.play(); _root.mc.mcA.play(); _root.mc.mcB.play(); _root.mc.mcA.mc1.play(); _root.mc.mcA.mc2.play();
18、 _root.mc.mcA.mc3.play(); } 说明:上例中使用的都是“绝对”路径,如果你对路径的概念掌较好,可以选择性的使用“相对”路径或“绝对”路径。 本课涉及的语法及规范 ? 圆括号 “ ()” :圆括号在动作脚本中作用非常大,在定义函数时在将参数全部放到圆括号内;在调用函数时要将传递给函数的所有参数包含在小括号里; 在设置表达式优先级或增强动作语名的易读性时都需要使用到圆括号。例如: 本课学的 on函数用来定义鼠标或键盘响应事件, 其中选择的鼠标事件就是参数。有时也可以没有参数例如:函数 play()。 ? 分号 “;” :动作脚本中的分号是用
19、来作为语句结束的标记, 在 Flash AS 脚本中,任何一条语句都是以“;”号结束的。虽然有时省略了“;”号,Flash 也可以成功的编译这个脚本,但这是不规范的。 ? 花括号“{ }” ,动作脚本中的一组语句可以被一对花括号“{……}”包 括起来,成为一 个语名组。在由多个动作状态组成的语句组中,使用花括号可以有效地来区分各命令的层级和从属关系。 十二、无条件转移 在上一课中我们学习了时间轴控制命令中的 play()和 stop()命令,这一课中我们学习时间轴控制命令中的另外6个命令。通过本节的学习掌握跳转命令的功能;能进行一些简单的交互控制。
20、正常情况下时间轴从第一帧开始按顺序向下播放,使用跳转命令可以打破原来的播放顺序,从而实现各种特效,跳转命令有两个,它们是 gotoAndPlay 和 gotoAndStop,应用格式为: scene:String [可选] — 一个字符串,指定播放头要转到其中的场景的名称。 frame:Object — 表示播放头转到的帧编号的数字,或者表示播放头转到的帧标 签的字符串。 gotoAndPlay|(“scene”, frame)的函数意义是:将播放头转到场景中指定的帧并从该帧开始播放。如果未指定场景,则播放头将转到当前场景中的指定帧。 gotoAnd Play 在动作
21、面板的 “代码选择区” 中选择 “全局函数” | “时间轴控制” | “gotoAndStop” 命令后,在此可以选择此命令的参数。该参数共有两个提示,其含义如下所述。 “gotoAndPlay(帧);” :按照该提示,可以在括号内输入需要跳转的帧数,例如,当播放到当前帧的时候,跳转到第 20 帧,则应当在当前帧上添加代码 gotoAndPlay(20);。 “gotoAndPlay(“场景” ,帧)” :按照该指示可以在括号内指定播放某一场景中的某一帧。将播放头转到场景中指定的帧并停止播放。例如:当播放到当前帧的时候自动跳转至scene_2(场景2)的第 20 帧,则在当前帧上添
22、加代码: gotoAndPlay("场景_2", 25); 如果未指定场景,播放头将转到当前场景中的帧。 注意: 1、在进行跳转时应该尽力避开场景和帧编号,而使用帧标签,帧标签可以穿越所有场景,可以减少错误的发生,还可以使flash 运行速度增快。还便于修改。 只能在根时间轴上跳转时使用 scene 参数,不能在影片剪辑或文档中的其它对象的时间轴内使用该参数。 gotoAndPlay([scene:String], frame:Object) : Void gotoAndStop([scene:String], frame:Object) : Void go
23、toAndPlay("场景",帧); gotoAndStop("场景",帧) 2、如果从元件时间轴跳转元件时间轴时,应该先加路径再写跳转命令。例如从元件时间轴转到根时间轴的标签为“f”的帧上停止,代码该这样写: _root.gotoAndStop("f"); gotoAndStop 在动作面板的代码选择区中选择“全局函数”---“时间轴控制”---“gotoandStop” 命令后,在代码显示区中的参数意义与gotoAndPlay的一样,这里就不再重述。 例如:当播放到当前帧时要自动跳转到“f2”帧处停止,则在当前帧上添加代码: gotoAndStop("
24、f2");//跳转到帧标签为“f2”的该帧处停止。 又如:gotoAndStop("场景 2", 1);//播放头从当前帧跳转到“场景 2”的第1 帧,并在该帧处停止。 场景面板的操作 场景:执行“窗口”|“设计面板”或“其他面板”|“场景”菜单命令,就会调出“场景面板” ,在该面板中可以进行场景的添加、复制、删除、重命名、排序等操作。 为了方便组织文档可以使用场景,例如, 可以使用单独的场景用于简介、 出现的消息以及片头片字幕。 当文档含有多个场景时,播放时是按场景的先后顺序依次进行播放的,而且所有场景中的帧是按场景顺序连续编号的,例如:如果文档包含两
25、个场景, 场景 1 中 有 10 帧,场景 2 中有 20 帧,则场景 2 中的帧的编号为 11 到 30。 nextFrame 和 nextScene 这两个命令通常与 on 命令结合,并作用于按钮上。单击鼠标后,播放下一帧 (nextFrame)或下一个场景(nextScene)。prevFrame 和 prevScene 这两下命令通常用来控制播放上一帧或上一个场景。其功能刚好与 nextFrame 和 nextScene相反。 场景跳转 制作播放面板的操作步骤如下: (1)点击“窗口”|“其它面板”|“场景” ,打开的场景面板,点击添加场景按钮,新建 3 个
26、场景,这样共是 4 个场景。在场景 4 的第 1 帧输入帧标签 “s4_f1” ,分别在场景 2 -- 场景 4 中创建一个按钮。 (3)进入“场景 1” ,在“图层 1”的第 1 帧制作一个播放界面 (4)给按钮添加代码(在场景 1需要4个按钮,才能把场景3也转换出来---老虎) 按钮 1 上的代码: on (press) { gotoAndStop(3); } 按钮 2 上的代码: on (release) { gotoAndStop("场景 2", 1); } 按钮 3 上的代码:(老虎所加) on (releas
27、e) { gotoAndStop("场景 3", 1); } 按钮 4 上的代码: on (press) { gotoAndStop("s4_f1"); } 分别进入每个场景中,选种按钮添加代码: on (press) { gotoAndPlay("场景 1", 1); } 在“场景 1”的第 1帧添加代码。 stop(); 测试影片观看效果。 在“场景 1”中的三个按钮,分别用了参数的三种形式来练习,建议在使用时 最好用帧标签来跳转。 制作简易相册 本例的目的是为了练习跳转命令及上一课中学习过o
28、n命令。 效果说明:点击滚动按钮可以看到对应的图片;点击左边的按钮可以进行前一张的切换;点击右边的按钮可以进行后一张的切换,并在切换时带声响提示。 1.新建一个 flash文档。设置文档属性为:宽 465、高 280,背景色白色。 2.导入素材,把本例的素材全部导入到库。 3.新建一个名为“图片”的影片剪辑元件,在此元件“图层 1”新插入 9 个空白关键帧,分别在这 10 个关空白关键帧中依次分别放入库中的“tp1”~“tp10” 这 10 张图片,并居中对齐。 (这里红色字为老虎所加)在此元件新建“图层 2”,放向左向右两个按钮。选中向左按钮(即前一张
29、输入脚本: on (release) { prevFrame(); if (b>1) { b--; } else { b = "1"; }; }; 选中向右按钮(即后一张),输入脚本: on (release) { nextFrame(); if (b<10) { b++; } else { b = "10"; }; }; 在此元件新建“图层 3”,在第一帧输入脚本: stop(); b = "1"; 4.新建一个名为“按钮 1”
30、的按钮元件,在按钮元件“图层 1”的弹起帧中,从库时提进“tp1”位图,在属性面板里设置宽70、高 45,居中对齐。在“点击帧”插入帧。插入“图层 2”在“图层 2”的弹起帧给制一个宽 70、高 45 的无笔触的矩形,填充色为浅灰色,并把透明度调为 30%,在“鼠标经过” 帧插入空白关键帧。 5.用同样的方法制作另外 9 个按钮,大家可以用复制元件,替换图片的方法来制作。 6.新建一个名为“按钮组”的影片剪辑元件,在其编辑区中,从库里提进“按钮 1”~“按钮10” ,并用对齐面板排列成一横排,再把前 6 张复制后接在后面。 7.(1)新建一个名为“滚动图片”的影片剪辑元件, 在
31、图层 1”绘制一个宽465、高 50 的无笔触的矩形框,填充色为淡紫色,并把透明度设为 30%。居中对齐。 (2)插入“图层 2”在此图层的第 1 帧上,从库里提进“按钮组”影片剪辑元件,并与下面的矩形条左对齐。 在第 100帧插入关键帧, 并在些帧上把图片按钮组向左移动,(移动多少要参照第 1 帧上的位置,确保循环播放时没有跳跃的视觉感。)如下图所示。然后创建动画。 第 1 帧上的图片位置和第 100 帧上的图片位置: (这里红色字及图片为老虎所加:因为教程原文既无图片又无文字说明)也就是当播放头在第 1 帧上时,第一张图片左边与场景左边对齐;在第 100 帧上的时候,第二组图片的第一张图片左边与场景左边对齐。把第二组图片在场景之外的删除。见下图: (注意:图中蓝辅助线是场景的宽)
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818