




已阅读5页,还剩138页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章ActionScript入门 提示 本期学习使用的是2 0版本的动作脚本语言 主要内容 第一部分基础交互式动画制作9 1ActionScript简介9 2语法基础9 3动作面板的使用9 4给对象添加动作9 9基本命令和程序结构控制9 6影片剪辑控制 主要内容 第二部分高级交互动画制作9 7键盘控制9 8文本字段9 9组件9 10Flash模板 第一部分ActionScript基础知识 9 1ActionScript简介 ActionScript是针对FlashPlayer的编程语言 它在flash内容和应用程序中实现了交互性 数据管理以及其它许多功能 9 1ActionScript简介 Flash用 动作面板 来书写程序 例如 trace 我会编程了 这个语句的作用是 将括号中的内容 我会编程了 显示在输出面板上 ActionScript内部的词汇都会以蓝色表示 当你在输入程序时 如果输入AS内部词汇时不是蓝色的 说明你输错了 9 1 1动作脚本概述 动作脚本 即ActionScript 是Flash内置的脚本语言 它是面向对象的编程语言 动作脚本可以添加在关键帧 按钮 影片剪辑元件上 通过事件响应来编写代码 ActionScript有自己的语法 变量 函数和表达式等 其结构也是由多行代码组成 每行语句由一些指令 运算符等构成 9 2语法基础 学习AS编程 首先需要知道变量 运算符和表达式语法规范 9 2 1变量的声明和使用 变量是指程序运行中可以改变的量 它是内存中存放数据的小房间的名称 变量由两部分构成 变量名和变量的值 在ActionScript中不需要预先声明变量 你只需要直接使用它们 Flash在第一次遇到它们的时候会自动为它们创建变量 9 2 1变量的声明和使用 变量的声明 在AS中 声明变量的格式如下 var变量名 数据类型 var变量名 数据类型 值 如 c newColor mcinstanceName varmyVariable Number 10 varmyString hello world c 39 b ActionScript 9 2 1变量的声明和使用 字符串 String 是一对用双引号包括起来的字母 数字 特殊字符的组合布尔值 是用来表示真假的数据类型 数字 int uint Number int和uint是整形数值 专门用来处理整数 Number是用来处理浮点数 数组 Array 是可以做为数据的容器 它能包含更多的数据 对象 Object 包含大量复杂的信息 是ActionScript所有数据结构的基石 常用的数据类型 9 2 1变量的声明和使用 变量的命名 尽量使用有含义的英文单词作为变量名 变量名采用骆驼命名法 变量名不能是ActionScript内部定义的保留字和关键字 例如 变量名firstName通常 影片剪辑元件的命名以 mc结尾 如my mc 按钮元件则是以 btn结尾 文本框则是以 txt结尾 9 2 2运算符 表达式及运用 运算符用于对表达式中各个运算量进行各种运算的符号 通过运算符对一个或多个值计算新值 Flash提供的运算符主要有 赋值运算符 算术运算符 模 算术赋值运算符 关系运算符 逻辑运算符 逻辑与 当两边表达式都为true时 返回值为true逻辑或 当两边表达式有一个值为true逻辑非 只有一个运算对象 在右边 其布尔值取反 9 2 2运算符 表达式及运用 由常量 变量 函数及变运算符按照运算法则组成的计算式 在flash中常用的表达式有以下几类 算术表达式 用算术运算符将常量 变量或函数连接起来进行数学运算的计算式 例如 vara 1 2 3 字符表达式 用字符串组成的表达式 例如 trace myName mary 用 号将两个字符串连接 关系表达式 用比较运算符或逻辑运算符进行运算 判断条件是否成立 常用于结构控制语句 例如 if x 9 判断x是否等于9gotoAndPlay 19 跳转到19帧并开始播放 通常编程就是连续地写一系列指令 计算机按顺序地执行它 面向对象编程则是将程序分成块 分散到对象上 什么是对象 简单地说 对象就是我们在Flash中能看到的一切东西 舞台是一个对象 时间轴 影片剪辑 按钮 文本 位图都是对象 9 2 3ActionScript的类 对象 方法和属性 所有对象都是由类定义的 每个类都包括了三个重要的元素 事件属性方法这是我们必须要了解的三个重要概念 9 2 3ActionScript的类 对象 方法和属性 事件 事件 在面向对象的编程中 程序被分散到了对象上 要计算机执行这些程序就需要事件来触发 当某件事情发生时就去做一些事情 这个某件发生的事情就是事件 比如在Flash中 放上一个 播放 按钮 当按钮按下时就播放一段动画 那么 当按下按钮 就是按钮对象的触发事件 例 事件在元件上的写法 on 事件名称 要执行的语句 9 2 3ActionScript的类 对象 方法和属性 属性 属性 描述对象的一组特征 比如 对象的大小 位置 颜色等 属性的书写规则是 对象名称 属性名称 值 最常用的属性有 x y 分别是对象在舞上台的x y坐标 这两个属性可以确定对象在舞台上的位置 xscale yscale 分别是对象在舞台上沿x y轴方向的缩放比例 例如 my mc xscale 90 这表示 元件my mc的宽度缩小到原来的90 9 2 3ActionScript的类 对象 方法和属性 方法 方法 是指对象具有的行为和能执行的动作 面向对象的软件开发是基于这样的概念 系统应由对象来创建 对象拥有数据和功能 属性定义数据 而方法定义功能 9 2 3ActionScript的类 对象 方法和属性 9 2 4语法规范 点语法 在ActionScript中 点 被用来指明与某个对象或电影剪辑相关的属性和方法 它也用标识指向电影剪辑或变量的目标路径 点语法表达式由对象或电影剪辑名开始 接着是一个点 最后是要指定的属性 方法或变量 9 2 4语法规范 点语法 例1 表达式ballMC x是指电影剪辑实例ballMC的 X属性 X指出编辑区中电影剪辑的X轴位置 例2 表达式shoppingCart form submit truesubmit是在电影剪辑form中设置的一个变量 而form又是嵌套在电影剪辑shoppingCart中的电影剪辑 表达式的作用是设置实例form的submit变量的值为true 9 2 4语法规范 2 分号 ActionScript语句用分号 结束 但如果你省略语句结尾的分号 Flash仍然可以成功地编译你的脚本 如 下面的语句用分号结束 colum passedDate getDay row 0 同样的语句也可以不写分号 colum passdDate getDay row 0 9 2 4语法规范 3 大括号 ActionScript语句用大括号 分块 如下面的脚本所示 on release myDate newDate currentMonth myDate getMonth 9 2 4语法规范 4 圆括号 定义一个函数时 要把参数放在圆括号中 如 functionmyFunction name age reader 如 调用一个函数时 也要把要传递的参数放在圆括号中 myFunction Steve 10 true 圆括号可以用来改变ActionScript的运算优先级 或使自己编写的ActionScript语句更容易阅读 9 2 4语法规范 分号 大括号 圆括号 可以通称为分界符 9 2 4语法规范 9 严格区分大小写字母 在ActionScript中要严格区分字母大小写 例如 varmyString String VarMyString String 是两个完全不同的变量 9 2 4语法规范 6 注释 注释就是程序中并不参与执行的那些代码 它可以用来提醒你某些代码的作用 方便你组织和编写脚本 有助于别人对你编写的脚本的正确理解 注释以双斜线 开头 在 后面你可以输入任意的文本和符号 Flash会自动将注释部分用灰色标示 如下所示 myMC alpha 90 将影片剪辑myMC的透明度设置为90 9 2 4语法规范 7 关键字 ActionScript保留一些单词 专用于与本语言之中 因此 不能用这些保留字作为变量 函数或标签的名字 下表列出了ActionScript中所有的关键字 breakcontinuedeleteelseforfunctionifinnewreturnthistypeofvarvoidwhilewith 9 2 4语法规范 8 常量 常量有其值永不改变的属性 常数用大写字母列表示 例如 常数BACKSPACE ENTER QUOTE RETURN SPACE和TAB是Key对象的属性 指键盘上的键 要测试用户是否在按Enter键 可使用下面的语句 if keycode key ENTER alert 你准备好了吗 controlMC gotoAndStop 9 9 3动作面板的使用 执行 窗口 动作 命令 打开动作面板 或者按F9快捷键 1 动作面板 9 3动作面板的使用 执行 编辑 首选参数 命令 打开如图对话框 可设置语法颜色等参数 1 动作面板 9 3动作面板的使用 1双击所需命令 2直接拖动命令至右窗口 3直接在此窗口输入 4单击此 号 选择命令 2 添加 动作 的4种方法 练习 为便于熟悉脚本的构成和动作面板的使用 输入并运行以下程序代码 当用户松开按下的按钮时 执行它 其中没有包含特殊的函数 但是它体现了ActionScript的主要结构 on release varmyNumber 7 varmyString FlashMXActionScript for vari 0 i myNumber i trace i if i 3 8 trace myString 9 4给对象添加动作 动作 面板中可以为以下三种对象设置动作 帧按钮影片剪辑 1 帧 写在关键帧上面的AS 当时间轴上的指针走到这个关键帧的时候 就写在这个帧上面的AS就被触发执行了 操作方法就是点选关键帧 然后打开AS面板 常见的例子 假设有一个动画 要让它在播放完同时停止 那么 你要做的就是在这个动画的最后一帧写ASstop 2 按钮 不同于帧上面的AS 按钮上面的AS是要有触发条件的 操作方法是点选目标按钮 然后打开AS面板 写在按钮上面的AS一定是这种格式的 on 事件 要执行的代码 下面举个例子 例 假设有个按钮 效果是按下按钮后停止播放 那么步骤如下 做一个按钮 放到主场景 点选按钮 然后打开AS面板 现在如果也在按钮上写stop 那么 输出的时候就会提示错误 正确的应该这样写on release stop 这里要比帧的动画多这些代码 on release 整个代码翻译过来就是 当 释放鼠标 停止 绿色的代码表示鼠标的触发事件事件之一 这里用的是release释放 按钮的常用事件 3 MC 影片剪辑 写在MC上面的AS和写在按钮上的大同小异 操作方法就是点选MC 然后打开AS面板 同样你要明确 写在MC上的代码一定总是这种格式 onClipEvent 事件 代码 看个例子 例 onClipEvent load stop 同样 MC需要一个事件来触发AS的执行 翻译这段代码就是当影片剪辑 载入 停止 绿色代码同样表示一个事件 MC的事件有 Load 载入 当MC出现的时候执行 也就是除非卸载这个MC 否则load事件内的代码只执行一次Unload 卸载 当MC卸载的时候执行enterFrame 存在的每个帧 在MC存在的每个帧都要执行一次代码 如果你的场景有100个帧 有个MC从41帧开始出现到100帧才消失 那么这个MC上面的代码执行了60次mouseDown 按下鼠标 在场景内任何地方都算 和按钮不一样的地方mouseMove 移动鼠标 只要移动鼠标就执行代码mouseUp 松开鼠标 9 4给对象添加动作 总之 要明确如何在帧 按钮 MC上写代码 就具备了交互动画的初步知识 问题 1 如何打开 关闭 动作 面板 2 你如何判断所添加的动作的对象是帧 还是影片剪辑实例 还是按钮实例 3 如何给按钮添加动作 如何给影片剪辑添加动作 4 on事件处理函数中 有哪些鼠标事件 9 影片剪辑的on事件与onClipEvent有什么相同与不同之处 9 9基本命令和程序结构控制 9 9 1时间轴命令9 9 2浏览器和网络命令9 9 3程序流程结构 9 9 1时间轴命令 play 和stop 命令gotoAndPlay 和gotoAndStop 命令prevFrame 和nextFrame 命令stopAllSounds 命令 9 9 1时间轴命令 1 play 和stop 命令stop 当执行stop命令的时候 影片在当前的帧处停止播放 你可以将stop命令放到时间轴的某一关键帧中 在stop后面需要紧跟一对括号 如下所示 stop play 使影片从当前帧开始继续播放 9 9 1时间轴命令 2 goto 跳到一个指定的帧 Frame 该命令使影片从当前帧跳转到指定的任意一帧 可以用帧编号或帧标签指定一帧 如下所示 gotoAndPlay 9 gotoAndPlay myFrame 跳到帧标记为myframe的帧播放 gotoAndPlay myScene 1 跳转到场景名为myScene的第1帧继续播放 9 9 1时间轴命令 2 goto 跳到一个指定的帧 Frame gotoAndStop 与gotoAndPlay 相似 不同的选择来确定到达指定的帧以后是停止播放 9 9 1时间轴命令 3 还有两个实现跳转帧动作的命令nextFrame 该命令使影片从当前位置转到下一帧 prevFrame 该命令使影片从当前位置转到上一帧 即回退一帧 这些控制动画播放的命令 一般需要与按钮结合使用 9 9 2浏览器和网络命令 加载影片命令 loadMovie卸载影片命令 UnloadMovie屏幕控制命令 fscommand建立URL地址链接命令 getURL 9 9 2浏览器和网络命令 1 加载影片命令 loadMovie功能 在播放原来加载的SWF文件的同时将SWF文件或JPEG文件加载到Flash播放器中 格式 loadMovie url target level variables 9 9 2浏览器和网络命令 参数 url 路径 要加载的SWF文件或JPEG文件的绝对或相对URL 相对路径必须相同级别的SWF文件 即与当前电影处于同一路径下的文件 绝对URL必须包括协议引用 例如http 或file target 目标 目标电影剪辑的路径 目标电影剪辑将被替换为加载SWF文件或图像电影 必须指定目标电影剪辑或目标电影的级别 level 级别 一个整数用于指定将SWF文件将加载到FlashPlayer中的哪个级别 在以后的课程中详细介绍 级别 variables 变量 指定发送变量所使用的HTTP方法 该参数必须是字符串GET或POST 如果没有要发送的变量 则省略此参数 9 9 2浏览器和网络命令 1 如果要将影片定位 可使用影片剪辑元件实例的目标路径来定位 加载到目标的SWF文件或图像会继承目标影片剪辑的位置 旋转和缩放属性 左上角与目标影片剪辑的注册点 即中心点 对齐 例 loadMovie 1 swf root here mc 将影片加载到影片实例here mc位置 2 如果要将影片加载到指定的级别 可使用loadMovieNum 命令 例 loadMovieNum 1 swf 2 将影片加载到级别2 9 9 2浏览器和网络命令 2 卸载影片命令 UnloadMovie格式 unloadMovie target level 参数 target 目标 影片剪辑的目标路径 level 级别 所卸载影片的级别功能 从播放器中删除已经载入的电影或电影剪辑 9 9 2浏览器和网络命令 1 如果要删除使用loadMovie 命令加载的影片使用命令unloadMovie target 例 unloadMovie root here mc 删除已加载到影片元件实例here mc位置的影片 2 如果要删除使用loadMovieNum 命令加载的影片使用unloadMovieNum level 命令例 unloadMovieNum 1 删除已加载到级别 位置的影片 练习 制作一个动画 在播放影片时 使用按钮控制加载指定的影片 并删除已加载的影片 在加载影片到指定目标的按钮上添加如下脚本 on release unloadMovieNum 1 删除已加载到级别 位置的影片loadMovie 11 3 1 swf this here mc 将影片加载到影片实例here mc位置 在加载影片到指定级别的按钮上添加如下脚本 on release unloadMovie this here mc 删除已加载到影片元件实例here mc位置的影片loadMovieNum 11 3 3 swf 1 将影片加载到级别1 9 9 2浏览器和网络命令 3 屏幕控制命令 fscommand格式 fscommand command parameters 参数 command 命令 传递给Flash播放器的命令或是传递给应用程序字符串 parameters 参数 命令参数 true 真 或false 假 功能 控制swf影片文件在独立的Flash播放器中的一些属性 如全屏播放 等比缩放 关闭播放器窗口等 或者向Web浏览器中的脚本撰写语言发送消息 必须使用FlashPlayer独立播放器播放swf文件 不能用Ctrl Enter播放 fscommand可以执行的命令与参数 例 例 7fscommand 在按钮释放时将SWF文件缩放至整个显示器屏幕大小 on release fscommand fullsceen true 例 在按钮释放时影片退出全屏显示状态 on release fscommand fullsceen false 例 在按钮释放时关闭影片on release fscommand quit 9 9 2浏览器和网络命令 4 建立URL地址链接命令 getURL用于在Flash动画作品中创建链接 使得在动画播放时 通过动画中的按钮等控件打开互联网目标的URL地址中的Web站点 网页或Email地址 功能 建立超级链接 将指定URL文档加载到窗口中 若要测试此动作 应确保要加载的文件位于指定的位置 若要使用绝对URL 例如 则需要网络连接 9 9 2浏览器和网络命令 4 建立URL地址链接命令 getURL格式 getURL url window variables 参数 url 地址 链接文档的网络地址 可以是绝对地址 也可以是相对地址 window 窗口 可选参数 指定文档应加载到其中的窗口或HTML框架 可输入特定窗口的名称 或从保留目标名称中选择 self指定当前窗口中的当前框架 blank指定一个新窗口 parent指定当前框架的父级 top指定当前窗口中的顶级框架 variables 变量 如果没有变量 则省略此参数 练习 制作Flash动画 使用按钮控制打开URL地址中的Web站点 在按钮上添加如下脚本 on release getURL blank 在新窗口打开网易网站 使用按钮控制打开当前站点的网页 在按钮上添加如下脚本 on release getURL picture htm blank 在新窗口打开网页 附加电子邮件链接 on release getURL mailto abc 主要命令小结 9 9 3程序流程结构 顺序结构选择结构循环结构 9 9 3程序流程结构 顺序结构 9 9 3程序流程结构 1 顺序结构顺序语句就是指依顺序逐条执行的语句 只有在上一条语句执行完后 才能执行下一条语句 如以下语句 a 12 b 13 c a a b b c 这个程序是将a b的值互换 程序从第一条语句开始执行 直到最后一条语句 顺序语句比较简单 就是从上上到下依次执行而已 9 9 3程序流程结构 2 选择结构选择结构先测试条件表达式 然后根据测试表达式的结果执行不同的操作 选择结构最常用if语句来实现 if语句是用来判断所给定的条件是否满足 根据判定的结果 真或假 决定执行给出的两种操作之一 if语句有以下三种形式 单向选择双向选择多项选择 9 9 3程序流程结构 选择结构 1 单向选择 单向选择语法为 if 条件表达式 语句 varx score score 90 if score 60 trace score 是及格的成绩 例 练习 制作一动画 创建第1帧和第19帧 判断X是否等于9 如果比较结果为true 则让影片跳到第19帧 if x 9 gotoAndPlay 19 注意 要在第一帧加stop 语句 并在以上代码中加x 9语句 使动画播放19帧 2 双向选择 双向选择是当if里的条件为 真 即满足 时 执行语句1 条件为 假 即不满足 时 则执行else里的代码2 语法为 if 条件 语句1 Else 语句2 练习 制作一动画 创建第1帧和第19帧 判断X的值 如果比较结果为true 则让影片跳到第1帧 为false 则让影片跳到第19帧 x 4 if x 9 gotoAndPlay 1 else gotoAndPlay 19 注意 要在第一帧加stop 语句 并在以上代码中修改第一句x的值 改变动画播放的位置 3 多项选择 这个就是比较复杂的了 意思是如果表达式1的值为真的话 这是一个分支 就执行语句1 如果表达式1的值为假的话 这是一个分支 就执行if 表达式2 语句2 如果值为假的话再在这个假的分支里使用选择语句 再划分选择的条件 其实就是多个ifelse语句 参见下页图示 if 条件表达式1 语句1 elseif 条件表达式2 语句2 elseif 条件表达式3 语句3 elseif 条件表达式n 语句n else语句m 多项选择图示 switch语句 除了if else语句外还有switch语句也是可以拿来实现多项选择的 所以switch语句也被称为多分支选择语句 例如学生的成绩有90以上 80以上 70以上等 可显示出不同等级 当然如果用嵌套if语句也是可以实现 但是相对来说就麻烦些 if语句的嵌套层数多 程序冗长而且读起来很难理解 所以 AS也提供switch语句来解决这一难题 一般形式如右 switch 表达式 case常量表达式1 语句1 case常量表达式2 语句2 case常量表达式n 语句n default 语句n 1 说明 switch后面的表达式 允许为任何类型 整型 字符串等等 当表达式的值和后面花括号里某一个case后面的常量表达式的值相等时 就执行case后面的语句 若所有case后面的常量表达式的值都没有和switch后的表达式的值相匹配 就执行default后面的语句 每一个case后面的常量表达式的值必须互不相同 否则就会出现自相矛盾的现象 对表达式的同一个值 有两种或多种执行方案 各个case和default的出现次序不影响执行结果 例如可先出现default再出现case 说明 执行完一个case分支后 流程控制转移到下一个case继续执行 case常量表达式只是起语句标号的作用 并不是在该处进行条件判断 在执行switch语句时 根据switch后面的表达式的值找到匹配的入口标号 就从此标号开始执行下去 不再进行判断 因此应该在执行完一个case分支后 使流程跳出 switch结构 即中止switch语句的执行 可以用break语句来达到此目的 如下 switch 表达式 case常量表达式1 语句1 break case常量表达式2 语句2 break case常量表达式n 语句n break default 语句n 1 最后一个流程default不可以 break语句 在case后面虽然包含一个以上的执行语句 但可以不必用花括号括起来 会自动顺序执行笨case后的所有语句 当然加上花括号更好了 例 用多项选择来显示成绩等级的程序 代码如下页 改变选择条件并修改代码 varscore s1 y sco 80 在这里输入不同分数 将进入以下代码的不同casescore int sco if score 0 练习 下面这个程序是显示今天是星期几 新建一文件 写一动态文本 并命名 判断星期 新建一层 在帧上添加如下语句 mydate newDate 创建一个新的日期对象week mydate getDay 获取本地日期是星期几 并赋值给变量weekswitch week case0 week值为0 执行语句day 星期天 执行后跳出switch结构day 星期天 break 练习 case1 道理同上day 星期一 break case2 day 星期二 break case3 day 星期三 break case4 day 星期四 break case9 day 星期五 break case6 day 星期六 break 练习 trace 今天是 day 该输出 仅用于该程序片段显示结果需要 9 9 3程序流程结构 3 循环结构循环在每种编程语言中都是一个很重要的部分 整个循环只需要一个开始点 一个结束点 再加上一个标志循环结束的条件 条件是循环中的重要组成部分 9 9 3程序流程结构 3 循环结构例如 你需要循环10次 使用一个变量从0开始计数 每循环一次 计数加1 当计数变量达到10时 循环结束 程序继续执行循环以后的部分 下面的内容代表了一个标准的循环结构 1 循环以前的命令 2 循环开始 计数变量置0 3 循环中的命令 4 计数变量加1 9 如果计数变量小于10 执行步骤 3 6 循环以后的命令 在上面的步骤中 步骤 1 只执行1次 步骤 2 表示循环的开始 步骤 3 4 9 都将执行10次 当循环结束后 执行步骤 6 及以后的部分 9 9 3程序流程结构 3 循环结构循环结构的目的就是减少重复代码 减轻程序员的负担 而其形式 有三种 for循环 也称计数循环 while循环 也称条件循环 do while循环 也称条件循环 for循环语句 AS中的循环与C语言中的循环结构几乎是一致的 格式 for结构中关键字for后面的括号中包含3个部分 它们之间用分号隔开 声明一个局部变量 该部分只在循环体开始执行之前执行一次 供测试的条件 只要满足该条件 就会反复执行循环体 一个运算表达式 每完成一次循环都将执行该表达式一次 大括号中的部分是该循环的循环体 每执行一次循环都将执行其中的所有命令 for 初值 条件表达式 增值 要执行的语句 例 for循环代码如下 运行这段代码 输出窗口中将显示数字0 9 for后面的括号中包含3个部分 它们之间用分号隔开 第1部分 在本例中创建了一个局部变量i并将其设置为0 该部分只在循环体开始执行之前执行一次 第2部分 测试i是否小于10 只要满足该条件 就会反复执行循环体 循环开始的时候i等于0 它是小于10的 所以循环得以执行 第3部分是一个运算表达式 每完成一次循环都将执行该表达式一次 在这里 i每次递增1 然后转到第2部分对i的新值进行判断 如果希望输出窗口显示数字为 0123 89 则需将代码改写为下页所示 for vari 0 i 10 i trace i num num定义为一字符串变量for vari 0 i 10 i num num i trace num while循环 while循环有点类似if语句 只要条件成立就执行相应语句 格式 当条件表达式为真时 执行大括号中的语句 执行计数语句 然后用计数语句的结果再次检测条件表达式 如此反复循环 直到条件表达式为假为止 这里需要注意的是 如果没有计数语句 或者计数语句的结果永远不能使条件表达式为假 那么循环将水远无休止地反复 这就形成了一个死循环 我们在编程的过程中一定要避免这种情况 while 条件表达式 要执行的语句计数语句 例 while循环代码如下 运行这段代码 输出窗口中将显示数字0 9 while循环看起来似乎要比for循环简单一些 从结构上看甚至与if语句还有一些相似 只要while后面括号中的条件成立 循环就会一直进行下去 所以在while循环体中需要有改变条件的语句 以使条件最终能够为false 完成循环 如上例中的i i 0 while i 10 trace i i do while循环 do while循环 这个循环实际和while循环是一样的 只是它先执行一次语句 然后再检测条件语句 而while循环是先检测条件语句再执行大括号内的语句 do while循环的格式为 do 要执行的语句计数语句 while 条件表达式 例 do while循环代码如下 除了测试条件的位置不同 while循环和do while循环几乎是一样的 while循环在循环体之前测试条件 do while循环在循环体之后测试条件 所以do while循环至少要执行一次 而while循环有可能一次也不执行 i 0 do trace i i while i 10 跳出循环 所有的循环结构都可以使用两个命令改变循环的执行流程 一个命令是break break命令终止循环 并跳到循环结构后面的语句处执行 另一个命令是continue continue命令终止本轮循环但不跳出循环 进而执行下一轮循环 使用break和continue的例子都比较复杂 另外 还有一种特殊的for in循环结构 这里就不再详细讲解 例 试分析最后输出的a是多少 如果将trace a 放至循环体内的输出又将是怎样 程序开始时 a等于0 然后进入for循环 循环开始i等于0 条件表达式i 10成立 那么执行a i 此时a i均为0 那么a为0 然后执行增值i 则i为1 再检测条件表达式i 10仍成立 执行a i 则a为1 执行i i为2 这样反复循环 直到i为10时 条件表达式i 10不成立 停止循环 明显可以看出循环进行了10次 测试影片时输出为9 vara 0 for vari 0 i 10 i a i trace a 练习 利用计数循环 编写依次计算9 100之间是9的倍数的程序 利用条件循环 编写计算0 99之间所有9的倍数总和的程序 练习6 编写一段程序 会依据答对题数来显示不同评语 例如 答对1题 显示 不错 答对2题 显示 好 答对3题 显示 好啊 答对4题 显示 很好 程序结构小结 程序结构有 顺序结构选择结构循环结构选择结构的if语句有以下三种形式 单向选择双向选择多项选择循环结构有以下三种形式 for循环while循环do while循环 9 6影片剪辑控制 影片剪辑是Flash中最重要的一种元件 对影片剪辑的控制是AS最重要功能之一 Flash的许多复杂动画效果和交互功能都与影片剪辑的运用密不可分 影片剪辑就是MovieClip 我们一般简称MC 要想通过电影剪辑元件来控制影片播放或执行某项动作 可以为电影剪辑元件实例添加脚本 指定需要执行的动作 9 6 1为电影剪辑添加脚本 要为电影剪辑添加脚本 需要使用事件处理函数onClipEvent 当函数中的事件发生时 则执行事件后面大括号中的语句 onClipEvent 事件处理函数一般形式为 onClipEvent 事件名称 执行的语句 9 6 1为电影剪辑添加脚本 为影片剪辑添加脚本操作步骤选中要添加脚本影片剪辑元件实例 在属性面板上输入实例名 例如 man mc 打开动作面板在动作工具箱中点击展开 全局函数 中的 影片剪辑控制 类别双击该类别下的onClipEvent 在参数下拉列表框中选择一个参数 如load 将光标移到 的右边 按enter键换行从动作工具箱中将需要的命令拖到脚本窗格中 或直接输入命令 命令输入后单击脚本窗口上方 自动套用格式 按钮 使脚本格式更清淅 9 6 1为电影剪辑添加脚本 影片剪辑可指定的事件有以下9种 参见下页表格 9大事件中 常用的就是load enterFrame 影片剪辑可指定的事件有以下9种 续下页 9 6 1为电影剪辑添加脚本 影片剪辑的实例命名要控制一个影片剪辑 首先应该为影片剪辑的实例命名 注意 不要混淆的是 库面板中的影片剪辑本身有一个名称 场景中影片剪辑实例也有一个名称 它们可以相同 也可以不相同 但如果你在场景中创建了同样的影片剪辑的多个实例 那么就需要将每个实例以不同的名称命名 才能用AS对每一个实例进行控制 要在AS脚本中调用 或定位 元件 一般使用其 实例名 例 选中场景中影片剪辑名为fishCount mc实例 打开属性面板 可以看到 实例 fishCount 的实例名称叫 fishCount mc 9 6 2MC属性控制 一 MC属性简介MC的属性有30余种 我们在这里介绍部分常用的 最具代表性的属性 x 影片剪辑的x坐标 从左到右的值 整数 y 电景剪辑的y坐标 从上到下的值 整数 alpha 电影剪辑实例的透明度 有效值为0 完全透明 到100 完全不透明 默认值为100 你可以通过对MC的 alpha属性在0到100之间变化的控制 制作出或明或暗或模糊的效果来 rotation 电影剪辑的旋转角度 以度为单位 从0到180的值表示顺时针旋转 从0到 180的值表示逆时针旋转 不属于上述范围的值将与360相加或相减以得到该范围内的值 9 6 2MC属性控制 visible 确定电景剪辑的可见性 当MC的 visible的值是True 或者为1 时 MC为可见 当MC的 visible的值是false 或者为0 时 MC为不可见 height 影片剪辑的高度 以像素为单位 width 影片剪辑的宽度 以像素为单位 xscale 影片剪辑的水平缩放比例 yscale 影片剪辑的垂直缩放比例 当 xscale和 yscale的值在0 100之间时 是缩小影片剪辑为原影片剪辑的百分数 当 xscale和 yscale的值大于100时 是放大原影片剪辑 当 xscale或 yscale为负时 水平或垂直翻转原影片剪辑并进行缩放 9 6影片剪辑控制 不要把影片剪辑的高度与垂直缩放比例混淆 也不要把影片剪辑的宽度与水平缩放比例混为一谈 例如 MC width 90 表示把MC的宽设置为90像素 MC xscale 90 表示把MC的水平宽度设置为原来水平宽度的90 9 6 2MC属性控制 二 getProperty 和setProperty 命令一般使用形式为 setProperty 目标 属性 值 功能 用来设置MC的属性 有三个参数 目标 就是要控制 设置 属性的MC的实例名 注意包括MC的位置 路径 属性 即要控制的何种属性 例如透明度 可见性 放大比例等 值 属性对应的值 包括数值 布尔值等 这两个命令在 动作 面板中 全局函数 影片剪辑控制 类别下 9 6 2MC属性控制 例如 setProperty root mc mc1 visible false 表示把影片mc下一个实例名为mc1的影片设置为不可见 setProperty root dm rotation 30 表示要使实例名叫dm的影片剪辑转动30度 9 6 2MC属性控制 一般使用形式为 getProperty 目标 属性 功能 用来获取MC的属性参数 目标 被取属性的MC实例的名称 属性 要取得的MC的属性 9 6 2MC属性控制 例如 mx getProperty root mc mc1 x 取得影片mc下一个实例名为mc1的影片的横坐标 并把它交给变量mx setProperty root dm1 y getProperty root dm0 y 表示设置影片dm1的纵坐标为影片dm0的纵坐标或者说 取得影片dm0的纵坐标的值 把这个值作为影片dm1的纵坐标的值 这种方法经常用在动态地为影片设置属性 9 6 2MC属性控制 三 使用点语法存取属性值除了用setProperty 和getProperty 命令设置和取得MC的属性外 也可以用 点语法来设置或取得MC的属性 有时候会觉得很方便 点语句的用法的一般形式为 影片剪辑名称 属性 属性值 影片剪辑名称当然包括它的路径 后面会比较详细地介绍路径的概念 下面我们以前面的例子来说明 9 6 2MC属性控制 例 setProperty root mc mc1 visible false 可以写成 root mc mc1 visible false setProperty root dm rotation 30 可以写成 root dm rotation 30 mx getProperty root mc mc1 x 可以写成 mx root mc mc1 x setProperty root dm1 y getProperty root dm0 y 可以写成 mx root mc mc1 x 9 6 2MC属性控制 setProperty root dm1 y getProperty root dm0 y 可以改写成两句 my root dm0 y root dm1 y my 9 6 2MC属性控制 四 实例本实例通过在按扭上添加控制属性的命令 并观察mc的变化 加深对mc属性的理解 初步学会mc属性的控制方法 实例运行时 有一个飞行状态的彩蝶和若干控制属性演示的按扭 如图7 1 1所示 按扭下有表示属性和控制的简单说明 单击按扭 就可以观察蝴蝶形态 位置等变化 9 6 3复制电影剪辑命令 一 复制电影剪辑命令一般使用形式为 duplicateMovieClip 目标 新名称 深度 功能 复制电影剪辑 Flash动画中倾盆大雨 满天雪花 繁星点点等特效就是利用该命令的功能来实现的 其中有三个参数 target 目标 要复制的电影剪辑的名称和路径 newname 新名称 是复制后的电影前辑实例名称 depth 深度 已经复制电影剪辑的堆叠顺序编号 每个复制的电影剪辑都必须设置唯一的深度 否则后来复制的电影剪辑将替换以前的复制的电影剪辑 新复制的电影剪辑总是在原电影剪辑的上方 9 6 3复制电影剪辑命令 在使用时 需要注意以下几点 复制的影片会保持父级影片原来的所有属性 所以 原来的影片是静止的 复制后的影片也静止 并且一个叠放在另一个上 如果你不给它们设置不同坐标 你就只能看到编号最大的复制影片 也就看不出是否复制出的效果了 原来的影片在做补间运动 那么复制品也要做同样的运动 并且无论播放头在原始影片剪辑 或 父 级 中处于什么位置 复制的影片播放头始终从第一帧开始 所以 复制品和原影片始终有个时间差 因此 即使你不给复制的影片设置坐标 你也可以看到复制品在运动 9 6 3复制电影剪辑命令 在使用时 需要注意以下几点 复制影片经常要与影片属性控制 特别是 x y alpha rotation xscale yscale等属性 结合使用才能更好地发挥复制效果 复制影片还经常都要和循环语句配合 才能复制多个影片剪辑 9 6 3复制电影剪辑命令 二 删除电影剪辑命令一般形式为 removeMovieClip 影片剪辑实例名 这个命令只有一个参数 就是复制后的影片剪辑实例名称 9 6 3复制电影剪辑命令 例如 for I 1 I 10 I 变量I从1开始 到9为止 变量每次加1duplicateMovieClip root a a I I 上面这段程序代码对一个名字为a的影片剪辑实例进行复制 复制后的实例名称为a1 a2 a9 深度分别为1 2 9 9 6 3复制电影剪辑命令 那么 在删除这些复制的影片剪辑实例时 你可以用下面的循环语句 for I 1 I 10 I removeMovieClip a i 9 6 4影片剪辑的路径 在前面 我们不止一次谈到MC的路径 那么什么叫路径 怎么运用路径呢 在Flash的场景中有个主时间轴 在场景里可以放置多个MC 每个MC又有它自己的时间轴 每个MC又可以有多个子MC 就像在我们国家 场境 下有很多个省 MC 每个省下又有许多个市 子MC 这样 在一个Flash的影片中 就会出现层层叠叠的MC 如果你要对其中一个MC进行操作 你就说出MC的位置 元件实例的引用路径 9 6 4影片剪辑的路径 元件实例的引用路径分两种 绝对路径和相对路径 绝对路径 是从主场景即 root 开始一层一层找到实例为止的路径 每层之间用 连接 绝对路径常用两个命令 root 主场景 主时间轴的根级 点运算符 用于连结各层 相对路径 是从指定对象开始一层一层找到实例为止的路径 与相对路径相关的命令有三个 parent 指向上一级对象 this 当前层级对象自身 点运算符 用于定位层次结构 9 6 4影片剪辑的路径 例如 主场景及各影片剪辑的包含关系如右图绝对路径 root mc1 mc11 play 命令mc11开始播放或 root mc1 mc11 mc111 stop 命令mc111停止播放 9 6 4影片剪辑的路径 例如 主场景及各影片剪辑的包含关系如右图相对路径 例如 以mc11为基点对象 指向mc111的相对路径是 this mc111指向mc1的相对路径是 this parent mc1再如 以mc111为基点对象 指向mc1的相对路径是 this parent parent mc1 9 6 9拖曳影片剪辑命令 在Flash动画中 你的鼠标变成一个美丽的动物图画 或者你可以任意搬动动画中的物体 这都需要用上两个成对出现的命令 startDrag 拖拽影片stopDrag 停止拖拽影片 9 6 9拖曳影片剪辑命令 一 拖曳影片剪辑命令一般形式为 startDrag 目标 lock left top right bottom 功能 拖拽影片 参数 目标 是要拖动影片的名字 即 实例名 lock表示影片拖动时是否锁定到鼠标位置中心 其值为 true表示锁定 如果希望将拖拽范围设定在一个区域中用true false表示不锁定 9 6 9拖曳影片剪辑命令 一 拖曳影片剪辑命令3 left top right bottom这四个参数分别设置影片拖动的左 上 右 下的范围 如图所示 left 是限定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 草原文化活动方案
- 焊接员工考试题及答案
- 公司写作考试题及答案
- 高考试题及答案化学
- 幼儿园教学教案设计:安全使用筷子
- 合作合同履行与守秘保证承诺书(9篇)
- 我和妈妈的一次出游作文11篇范文
- 税务申报表格快速填写指引
- (正式版)DB15∕T 3652-2024 《沙化土地综合治理技术规程》
- 生命常常如此绿色10篇
- 2025兴业银行福建总行国际业务部交易银行部招聘若干人备考考试题库附答案解析
- 1.3 几和第几(课件)数学苏教版一年级上册(新教材)
- 1.3加与减①(课件)数学沪教版二年级上册(新教材)
- 2025至2030中国HPV相关疾病行业项目调研及市场前景预测评估报告
- 无领导小组讨论的经典面试题目及答案解析
- 许昌襄城县特招医学院校毕业生招聘笔试真题2024
- 永辉超市快消培训
- (2025秋新版)苏教版三年级数学上册全册教案
- 2025北京京剧院招聘10人考试备考试题及答案解析
- 2025至2030中国催收外包服务行业销售模式及未来营销策略分析报告
- 2025-2030矿山工程机械租赁市场商业模式与风险防控报告
评论
0/150
提交评论