




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flash的ActionScript 第一节揭开ActionScript的神秘面纱 ActionScript是Flash内置的编程语言 用它为动画编程 可以实现各种动画特效 对影片的良好控制 强大的人机交互以及与网络服务器的交互功能 ActionScript是一门吸收了C Java以及JavaScript等编程语言部分特点的新的语言 ActionScrip使用英文单词和元件提供了一种为Flash影片设置指令的方法 它的存在确保了Flash影片较之普通的按照线性模式播放的动画具备强大得多的人机交互能力 可以为时间轴中的关键帧 按钮和影片剪辑添加ActionScript 选中这些关键帧 按钮和影片剪辑 打开其动作面板 你就可以看到它们都添加了哪些脚本 Actionscript的基本语法规则 使用Actionscript编写脚本时 如果使用正常模式的动作面板 通过菜单和列表选择选项 可以创建简单的动作 要想用Actionscript编写功能强大的脚本 你就必须深入了解和学习FlashMX的Actionscript脚本语言 像其它脚本语言一样 Actionscript也有变量 函数 对象 操作符 保留关键字等语言元素 有它自己的语法规则 Actionscript允许用户创建自己的对象和函数 Actionscript的语法和风格与javascript非常相似 但不完全相同 Actionscript拥有自己的句法和标点符号使用规则 这些规则规定了一些字符和关键字的含义 以及它们的书写顺序 例如 在英语中用句号结束一个句子 而在Actionscript中则用分号结束一个语句 下面列出的是Actionscript的一些基本语法规则 对于比较比较特别的规则 请参阅Actionscript词典 一 Flash脚本语法1 点语法在Actionscript中 点 被用来指明与某个对象或电影剪辑相关的属性和方法 它也用标识指向电影剪辑或变量的目标路径 点语法表达式由对象或电影剪辑名开始 接着是一个点 最后是要指定的属性 方法或变量 点语法表示方法 对象名 属性 方法 变量 点语法使用两个特殊的别名 root和 parent this 别名 root是指主时间轴 可以使用 root别名创建一个绝对路径 例如 root rose stop 可以用别名 parent引用嵌套当前电影剪辑的电影剪辑 也可以用 parent创建一个相对目标路径 这里的this也是Flash的关键字 这个this指AS所在的这条Timeline 2 斜杠语法Flash5支持这种语法 但不推荐使用 在斜杠语法中 斜杠被用来取代点 用以标明电影剪辑或变量的路径 要指出一个变量 可以在变量前加上冒号 例 myMovieClip childMovieClip myVariable可以用点语法取代上述斜杠语法表示的目标路径 myMovieClip childMovieClip myVariable斜杠语法在tellTarget动作中使用最普遍 但这种动作在Flash8中已不再推荐使用 3 大括号Actionscript语句用大括号 分块 如下面的脚本所示 on release myDate newDate currentMonth myDate getMonth 4 分号Actionscript语句用分号 结束 但如果你省略语句结尾的分号 Flash仍然可以成功地编译你的脚本 例如 下面的语句用分号结束 colum passedDate getDay row 0 5 圆括号定义一个函数时 要把参数放在圆括号中 functionmyFunction name age reader 调用一个函数时 也要把要传递的参数放在圆括号中 myFunction Steve 10 true 圆括号也可以用来改变ActionScript的优先级 或使自己编写的ActionScript语句更容易阅读 6 大小写字母在Actionscript中 只有关键字区分大小写 对于其余的Actionscript 可以使用大写或小写字母 例如 下面的语句是等价的 cat hilite true CAT hilite true 但是 遵守一致的大小写约定是一个好的习惯 这样 在阅读Actionscript代码时更易于区分函数和变量的名字 如果在书写关键字时没有使用正确的大小写 你的脚本将会出现错误 例如下面的两个语句 setProperty ball xscale scale setproperty ball xscale scale 前一句是正确的 后一句中property中的p应是大写而没有大写 所以是错误的 在动作面板中启用彩色语法功能时 用正确的大小写书写的关键字用蓝色区别显示 因而很容易发现关键字的拼写错误 7 注释需要记住一个动作的作用时 可在动作面板中使用comment 注释 语句给帧或按钮动作添加注释 如果你在协作环境中工作或给别人提供范例 添加注释有助于别人对你编写的脚本的正确理解 在动作面板中选择comment动作时 字符 被插入到脚本中 如果在你创建脚本时加上注释 即使是较复杂的脚本也易于理解 8 关键字Actionscript保留一些单词 专用于与本语言之中 因此 不能用这些保留字作为变量 函数或标签的名字 下表列出了Actionscript中所有的关键字 breakcontinuedeleteelseforfunctionifinnewreturnthistypeofvarvoidwhilewith 注意 这些关键字都是小写形式 不能写成大写形式 二 脚本中的常量与变量 1 关于变量变量是存储信息的容器 容器本身总是相同的 但内容可以改变 在首次定义一个变量时 最好赋给它一个已知的值 这称为初始化变量 初始化变量常常是在动画的第一帧进行 对变量初始化使我们能够在播放动画时更容易跟踪和比较变量的值 1 命名变量给变量命名必须遵守以下规则 变量名必须是一个标识符 不能以汉字开头 变量名不能是一个关键字或逻辑常量 true或false 变量名在它的作用范围内必须是唯一的 参阅变量的作用范围 trace 函数trace实际上是一个调试命令 它的输出会在 输出面板 显示出来 但在正式发布后不会显示 应用格式 trace expression object 参数 Expression是要显示的变量或表达式 变量的声明 即给变量赋值 变量声明格式 变量名 set 变量名称 变量值 2 变量的作用范围 在动作脚本中 有三种类型的变量范围 全局变量 局部变量 本地变量 时间轴变量A 全局变量 在整个文档有效全局变量就是可以作用在整个Flash影片的所有深度级别上的变量 你可以在某一帧中设置它 并在其他帧中使用和改变它的值 你不需要使用特别的方法创建全局变量 像前一个例子一样 直接设置并使用它 它自动成为一个全局变量 在许多编程语言中 全局变量可以在任何地方使用 Flash影片使用一个概念叫层级 level 整个影片的主时间轴作为根 root 层级 影片剪辑是时间轴中的小影片 影片剪辑中的图形和脚本要比根层级低一个级别 影片剪辑不能直接使用根层级中的全局变量 B 局部变量局部变量只能存在于当前脚本中 而在其他帧中它将不再存在 你可以在使用同一个变量名在不同的帧中创建不同的局部变量 它们之间将互不影响 局部变量可用来创建模块化的代码 当前脚本执行完时 局部变量将被从内存中删除 而全局变量将保留到影片结束 创建局部变量需要使用关键字var 例如 下面的ActionScript创建值为15的局部变量myLocalVariable myLocalVariable 15 使用var创建局部变量后 在当前代码中就不再需要使用关键字var了 例如 下面的代码创建值为20的局部变量myLocalVariable 然后将其值改为8 再发送到输出窗口中 varmyLocalVariable 20 myLocalVariable 8 trace myLocalVariable 如果没有特殊的需要 请尽量使用局部变量 C 时间轴变量 在声明该变量的时间轴内有效 有效期从声明该变量的帧开始 三 数据类型数据类型说明一个变量或ActionScript元素可以存储的信息种类 在Flash的ActionScript中有两种数据类型 原始数据类型 Primitive 和引用数据类型 Reference 原始数据类型 如字符串 数值 逻辑值 有一个常数值 因此 可以存储它们所代表的元素的实际值 引用数据类型 如电影剪辑和对象 拥有可以改变的值 1 原始数据类型 1 字符串字符串是一个字符 字母 数字和标点符号 序列 在ActionScript语句中输入字符串 使用单引号或双引号括住 可以用加号 操作符连接两个字符串 四 运算符 1 数值操作符数值操作符执行加 减 乘 除和其它算术运算 括号和负号 也属于算术操作符 下表列出了ActionScript的数值操作符 操作符执行的运算 加法 乘法 除法 取模 减法 递增 递减 2 比较操作符操作符执行的操作大于 大于等于 不等于 相等 3 字符串操作符 操作符对字符串操作时 其作用是连接两个字符串操作数 注 Flash8的ActionScript的数据类型允许同一操作符用于不同的数据类型 因此 再也不需要使用Flash4的字符串操作符 例如eq ge和lt等 除非需要导出Flash4动画 4 逻辑操作符逻辑操作符比较两个逻辑值 true和false 返回结果也是逻辑值 操作符执行的操作 逻辑与 逻辑或 逻辑非 添加动作脚本 动作脚本由 事件和动作组成 事件 由系统预先设置并能被计算机识别 包括 帧事件 鼠标事件 影片剪辑事件 Flash中能添加行为的对象 关键帧 按钮 影片剪辑 1 帧 必须是关键帧写在关键帧上面的AS 当时间轴上的指针走到这个关键帧的时候 就写在这个帧上面的AS就被触发执行了 操作方法就是点选关键帧 然后打开AS面板语句系列 2 按钮 不同于帧上面的AS 按钮上面的AS是要有触发条件的 一般为鼠标事件 写在按钮上面的AS是这种格式的 on 事件 要执行的代码 操作方法是点选目标按钮 然后打开AS面板按钮的常用事件 release松开releaseOutside在按钮外面松开press按下rollOver鼠标进入按钮的感应区rollOut鼠标离开按钮的感应区 1 常用的控制场景的方法 如 play 让时间轴的指针播放stop 停止时间轴的指针在程序触发时候的那个帧gotoAndPlay 让指针跳转到某个帧 然后继续播放gotoAndStop 让指针跳转到某个帧 停止在那个帧nextFrame 往下走一帧prevFrame 往前走一帧nextScene 往下一场景prevScene 往前一场景 实例 用时间轴控制行为控制动画的播放 第二节影片剪辑的属性 鼠标位置你不但可以获得影片中影片剪辑的坐标位置 还可以获得鼠标位置 即鼠标光标在影片中的坐标位置 表示鼠标光标的坐标属性的关键字是 xmouse和 ymouse xmouse代表光标的水平坐标位置ymouse代表光标的垂直坐标位置 需要说明的是 如果这两个关键字用在主时间轴中 则它们表示鼠标光标相对于主场景的坐标位置 如果这两个关键字用在影片剪辑中 则它们表示鼠标光标相对于该影片剪辑的坐标位置 xmouse和 ymouse属性都是从对象的坐标原点开始计算的 即在主时间轴中代表光标与左上角之间的距离 在影片剪辑中代表光标与影片剪辑中心之间的距离 多数情况下 你需要用到鼠标光标在主场景中的位置 所以可以使用 root xmouse和 root ymouse表示 Date对象应用 Date对象使您可以获取相对于通用时间 格林尼治平均时 现在叫做通用时间或UTC 或相对于运行FlashPlayer的操作系统的日期和时间值 Date对象的方法不是静态的 但仅应用于调用方法时指定的Date对象的单个实例 Date UTC方法是个例外 它是一个静态方法 Date对象以不同的方式处理夏时制 具体取决于操作系统和FlashPlayer的版本 若要调用Date对象的方法 必须首先使用Date对象的构造函数创建一个Date对象的实例 一 Date对象由七部分构成 它们是 year 0 99表示1900 1999年 如果要表示在此以外的年 必须使用完整的4位数字 month 0 11表示1月 12月 date 1 31表示日期 hour 0 23表示小时数 minute 0 59表示分钟数 second 0 59表示秒数 millisecond 0 999表示毫秒数 二 Data对象的创建方法 Date对象主要有两种创建方法 1 一种是通过指定时间创建一个Date对象的实例 这时至少要用到year和month两个参数 如下所示 myDate newDate 2003 7 8 13 16 500 2 另一种方法是通过获取系统时间创建一个Date对象的实例 这时不指定任何参数 如下所示 myDate newDate 创建Date对象后即可使用Date对象的方法 常用方法如下 date getYear 返回简写年份 如1999年返回99 2003年返回103 getFullYear 返回完整的4位数年份 如2003年返回2003 getMonth 返回月份 如7月返回6 getDate 返回日期 如7月16日返回16 getHours 返回小时数 如下午1点返回13 getMinutes getSeconds 和getMilliseconds 方法分别返回分钟 秒和毫秒数 getDay 返回星期数 星期日返回0 星期一返回1 以此类推 getTime 返回自1970年1月1日上午8时至Date对象所指时间的毫秒数 实例 用动态文本框制作电子时钟 准确的时钟制作万年历 第三节影片剪辑行为应用 控制影片剪辑的行为方法很多 下面介绍常用的一些行为方法 1 Array对象Array对象 动作面板的 对象 核心 目录 即数组 它用来记录成组的相关或相似变量 数组中的单个变量称为元素 数组中的每个元素对应一个索引 访问元素需要使用索引 索引需要用方括号括起来 如下所示的ActionScript创建一个空的数组 myArray newArray 如下所示的ActionScript创建一个确定值的数组并在输出窗口中显示每个元素的值 weekDay newArray SUN MON TUE WED TUR FRI SAT for vari 0 i 7 i trace weekDay i 2 设置影片剪辑属性语法格式 setProperty 对象名称 属性 属性值 可等价于 影片剪辑名称 属性 属性值说明 若影片剪辑名称为变量或表达式要表示成 root this parent 变量或表达式 属性 属性值 3 复制影片剪辑duplicateMovieClip动作 动作面板的 动作 影片剪辑控制 目录 和MovieClip对象 动作面板的 对象 影片 目录 中的duplicateMovieClip方法都用于在影片播放时创建影片剪辑的实例 也即复制场景中的父影片剪辑以产生新的影片剪辑 它们和后面要介绍的attachMovie方法对于要在影片中重复产生较多相同图形或动画对象时非常有用 如棋类游戏 射击游戏 鼠标跟随 下雪等特效动画 语法格式 duplicateMovieClip 对象名称 新对象名称 深度 实例 制作下雨的效果 4删除影片剪辑通过以上方法创建的影片剪辑实例都可以使用removeMovieClip动作 动作面板的 动作 影片剪辑控制 目录 或MovieClip对象的removeMovieClip方法删除 语法格式 removeMovieClip 对象名称 实例 用按钮添加行为进行影片剪辑的删除 5 单击影片剪辑你也许会认为只有按钮才能被鼠标单击 其实并非如此 采用一些技巧 影片剪辑也能接受鼠标的单击动作 并且可以有几种方法实现这种功能 1 将按钮置于影片剪辑中影片剪辑本身并不能响应鼠标单击动作 所以不能像按钮一样使用on release 或是on press 等事件处理函数 要使影片剪辑响应鼠标单击动作 可以在影片剪辑中放入按钮 如前一章中的台球实例 在球杆影片剪辑中即加入了一个覆盖整个球杆的隐形按钮 当单击球杆 实际上是单击按钮 时 即令影片剪辑开始播放 执行击球的动作 实例 制作鼠标经过特效 2 hitTest方法在影片剪辑中加入按钮并不是让影片剪辑响应鼠标动作的唯一方法 事实上 你可以使用onClipEvent mouseDown 或是onClipEvent mouseUp 或是onClipEvent mouseMove 等事件处理函数响应鼠标的动作 虽然影片剪辑中有这们的事件处理函数 但它与按钮的事件处理函数是有明显区别的 如影片剪辑的onClipEvent mouseUp 事件 无论鼠标在什么位置单击 只要是包含该函数的影片剪辑都要执行相应的动作 而按钮的on release 事件只有当鼠标在按钮上单击才会发生 命令格式一 影片剪辑 hitTest 被拖拽的实例 这个是比较简单的检测碰撞命令命令格式二 影片剪辑 hitTest 被拖拽实例的 轴坐标 被拖拽实例的 轴坐标 对象的矩形区域范围还是对象本身范围 这个是比较复杂点的检测碰撞命令矩形区域范围和对象本身范围 上面的命令中 false表示对象的矩形区域范围 true表示对象本身的范围 实例1 用onClipEvent函数在影片剪辑内部添加如下代码 onClipEvent enterFrame this x root xmouse this y root ymouse 此时 鼠标在任意位置都可以拖动MC 实例2 在影片剪辑内部添加代码 onClipEvent enterFrame if this hitTest root xmouse root ymouse true this x root xmouse this y root ymouse 以上语句在enterframe事件发生时 判断鼠标位置所在点与当前影片剪辑之间是否相交 只有当鼠标放在影片剪辑上时才能拖动MC 实例 拖动的蜡烛 6 startDrag 拖动影片剪辑语法格式 startDrag 对象名称 属性 坐标 可等同于 对象名称 startDrag 7 stopDrag 停止拖动影片剪辑语法格式 stopDrag 对象名称 等同于 对象名称 stopDrag 实例 拖动的蜡烛实例拖动的蝴蝶简单拼图游戏 用startDrag与hittest 单用startDrag 1 Fscommand指令使用的语法是 Fscommand command arguments Command是指令的相关命令 arguments是命令的参数 说明函数 使SWF文件能够与FlashPlayer或承载FlashPlayer的程序 如Web浏览器 进行通讯 还可使用fscommand动作将消息传递给MacromediaDirector 或者传递给VisualBasic VisualC 和其它可承载ActiveX控件的程序 用法1 若要将消息发送给FlashPlayer 必须使用预定义的命令和参数 下表显示可为fscommand动作的command和parameters参数指定的值 这些值用于控制在Flashplayer 包括播放器 中播放的SWF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年台式电动冲床行业当前发展趋势与投资机遇洞察报告
- 2025年再制造行业当前竞争格局与未来发展趋势分析报告
- 支气管内膜结核影像课件
- 2025至2030年中国松木板行业竞争格局分析及投资战略咨询报告
- 2025汽车驾驶员考试题库及模拟考试答案(初级、中级、高级)
- 2025年二级造价工程师试题(含答案)
- 2025年安全员C2证考试企业管理及职业健康模拟试题及答案
- 辐射安全培训试题(附答案)
- 科室护理知识练习测试考核试题(含答案)
- 2025年食品安全质量检验工职业技能资格知识考试题库与答案
- 2025上海市八年级升九年级数学暑假提升讲义:相似三角形压轴题(六大题型)原卷版
- 2025年工业互联网工程技术人员考核试题题库及答案
- 供货组织方案范文
- 农行OCRM系统讲解
- 2025年《药品经营和使用质量监督管理办法》培训试题及答案
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
- 网约车停运损失赔偿协议书范文
- 什么是标准化沟通
- 产前筛查规范化流程和质量控制侯巧芳 课件
- 询价投标文件范本
- 《固体物理学》全册完整教学课件
评论
0/150
提交评论