1、FLASH 动作脚本编程技术Technolege of ActionScript Programming广州大学 网络中心林骁于第一章 FLASH 基本概念和知识本课程的目和任务 本课程是FLASH 电影动画与课件设计的后续课程,课程开设的目的在于向学员系统地、详细地介绍 FLASH 动作脚本ACTIONSCRIPT 的基本语法、编程技术、设计技巧及其在课件制作中的应用等,本课程力求学员通过理论知识的学习和上机联系后,可以熟练掌握 FLASH 动作脚本的编程的方法和技巧,设计出应用于本职教学工作中的课件和教学演示多媒体文稿,以提高教学质量和水平。 在课程的学习过程中,学员除了掌握 FLASH
2、动作脚本设计的理论知识外,还要完成相应的上机实习,编制一定水平的脚本程序,培养出一定的实际设计能力,完成教师要求的设计任务,最后通过理论考试和设计大作业考核。 本课程内容选取本课程内容的选取原则是从 FLASH 动作脚本编程的基本语法出发,系统、完整、详细地介绍 FLASH ACTIONSCRIPT 的编程方法和技巧,着重强调 ACTIONSCRIPT 在课件制作和教学演示方面的应用等,力求选取的教学内容与学员的实际工作紧密结合。 本课程学习的方法为了能在比较短的时间学会 FLASH 动作脚本编程,本课程的学习在探索一条途径,这个学习途径就是:FLASH 基本设计基础actionscript
3、编程界面 对象、动作的概念与知识实例。同时,还要求学员加强课外的自我学习、模仿和练习。本课程基本要求 本课程要求参加学习的学员具有 FLASH 电影动画的基础知识和基本的操作技能。1. Flash 电影动画的组成symbole(symbol, symbol instance)flame(flame, stage) timelinelayer scene movie(stage)2. Flash 设计画面的小节工作区(stage)菜单(重点:file、insert、modify、window)面板(重点:tool、timeline、property 、 、 、 、 、 、 、 、 )3. Fla
4、sh 一般设计画面的重要环节文件的创建、常用工具的使用、创建图形图符原型,创建声音图符、创建按钮图符、帧和关键帧、层(普通层、向导层、遮罩层)和时间线的使用、两种渐变、场景、电影学员上机练习:无第二章 ActionScript 基本概念和知识Flash ActionScript基本知识 AS载体分类(本节重点)FlameObject Button Symbol Movie Clip 设计Flash ActionScript的基本步骤1 确定Flash动作的内容2 打开动作面板:Window-Development Panels-Actions3 确定AS载体4 开始编写动作脚本程序5 运行调试
5、动作脚本程序6 输出到Flash 电影 AS面板总体认识(本节重点)(flash MX)动作工具箱脚本导航器脚本窗口参数设定区( 标准模式)按钮组:添加项目/查找 /查找并替换/插入目标路径/检查语法/自动套用格式/显示代码格式/ 脚本帮助/调试选项 两种模式 Normal Mode:在动作工具箱中选择动作 Expert Mode:直接在脚本窗口中编写 AS的调试(本节重点) 输出窗口 调试工具窗口 Sample1-1学员上机练习:Sample1-1、熟悉FLASH 的动作面板掌握动作脚本编程的一般步骤掌握输出窗口的用法 理解面向对象(本章重点难点) Flash actionscript是一种
6、面向对象的编程语言 对象:flash动画中actionscript可以操纵的单元(重点) 理解例子一个图符实例(symbol instance)Actionscript可以改变图符实例的属性 对象里有什么?属性方法:具有固定功能的一段程序子对象 FLASH 的对象结构_rootStageMC1MovieClipP1PropertyS1GraphicsSymbolMC3MovieClipMC2MovieClipMC4MovieClipB1ButtonSymbolF1Fuction属性方法对象属性方法对象 属性方法对象问题:如何理解 flash 的对象结构 三个重要的词this 当前对象_root
7、 根对象_parent 父对象 对象的表示:点路径例如,在上图中,this是S1,要使用到P1:绝对路径: _root.MC2.S1.P1相对路径: this.P1 小结:使用属性、方法和对象 属性的操作赋值 方法的操作调用 对象的操作创建、删除等学员上机练习:理解附录 A 实例一 酷打字效果第三章 对象的属性和方法 理解Flash 的动作 动作的三因素 事件 Event 动作 Action 语句 目标 Target 事件 Event 鼠标事件 键盘事件 帧事件 电影剪辑事件 动作 Active 理解函数:形成Flash Action 基本动作和函数及其功能 控制时间线 浏览器和网络 电影剪辑
8、 复杂动作 目标 Target 控制时间线 浏览器和网络 电影剪辑学员上机练习:(无) 接触FLASH的对象一般对象的属性(P20)_alpha_currentframe_droptarget_focusrect_framesloaded_height_highquality_name_quality_rotation_soundbuftime_target_totalframes_url_visible_width_x_xmouse_xscale_y_ymouse_yscale常用的命令1. gotoAndPlay2. gotoAndStop3. on4. play5. stop6. sto
9、pAllSound7. fscommand8. getURL9. loadMovie10.unloadMovie11.duplicateMovieClip12.onClipEvent13.removeMovieClip14.setProperty15.startDrag16.stopDrag17.updateAfterEvent18.trace flash ActionScript类的结构flash ActionScript类的结构(图一)flash ActionScript 元素的结构:运算符(例如:各种算术运算、赋值运算等)常量 (例如:TRUE,FALSE,NULL 等)属性 (一些通用
10、的属性,例如:_xmouse/_ymouse 等)函数 (一些通用的方法或数学计算程序等,例如:getVersion()/getTimer()/number())动作 (这部分是 flash ActionScript 的重要核心之一,是可以控制flash 各种对象和组成部分的一些控制命令、语句和变量等。典型的例子如:GotoAndPlay,While 等)影片控制浏览器/网络影片剪辑控制变量条件循环打印用户定义的函数其它动作对象 (这部分是 flash ActionScript 的重要核心之一,通常我们将这里出现的四类对象称为内置对象)核心对象(flash ActionScript 的核心对象
11、)影片(flash ActionScript 专用的操纵对象)客户端/服务器(用于客户端和服务器之间通讯的对象)创作(flash 自定义创作应用程序)flash UI 组件 (组件有用户界面控件、容器(例如滚动窗格)和不可视对象(例如 FocusManager) 。一般组件带有参数,利用这些参数可以修改组件的外观和行为,例如组件有FlistBox、FpushButton 、FRadioButton )注意:一些内置 Flash 对象是顶级对象,顶级对象可以直接使用其方法和属性,而不用创建该对象的新实例。例如,要使用顶级 Math 对象的方法和属性,可以使用内置对象的名称,后面加上该方法或属性,
12、如下所示: area = Math.PI * radius * radius;其它内置对象,例如 Date 对象,则需要创建该对象的新实例,然后才能使用它的方法和属性。一般在动作面板的工具箱里有 new 构造函数的对象使用前需要创建。创建了内置对象的一个新实例后,该对象的所有属性和方法都会被拷贝到该实例中。学员上机练习:浏览附录 C 第 3Flash Action Script 的元素分类: 学习 ActionScript 的途径Flash 基础知识对象动作ActionScript 元素的构成ActionScript 实例程序ActionScript 设计作品第四章 ActionScript
13、编程 ActionScript数据类型 整型/小数型65 1813.14159 字符串“北京路 102号”转义字符:以“”开始 ,具体见参考书p8 布尔数True/False 实例Instance属性方法 对象Object属性方法 ActionScript常量变量 常量 意义 定义常量 内置的常量为大写,如key.ENTER ,nath.PI 使用常量 变量 意义 定义变量 可以不预先声明,赋值决定类型 使用变量 注意变量的作用域 函数参数是局部变量 数组变量的使用 ActionScript运算符 见参考书 P1112 运算种类 数值运算 逻辑运算 比较运算 字符串运算 位运算 赋值运算 Ac
14、tionScript语句 作用:语句体的开始和结束 函数 声明 调用 例子Function test( )trace(“This is an Example for show a function.”);Test( ); 注释语句 /和/* */ 格式/说明文字/*/ 例子/这是使用注释语句的说明a =5;/* 下面的都是注释这是一行注释注释到这行末结束*/trace(a); ActionScript 程序的结构 顺序结构 格式ActionScript语句1;ActionScript语句2 ;ActionScript语句3 ;ActionScript语句4 ; 例子a = 2;b = 5;c
15、= a+b;Trace (“c=” );Trace ( c ); 循环结构: For语句 格式for (初始化;条件;递进) 例子for ( i =1; i5) trace(“The Value of Variable a is bigger than 5. ”);Else trace (“The Value of Variable a not bigger than 5.”);第五章 全面认识 ActionScript一、 ActionScript的一些重要知识要点1. FLASH MX ActionScript 的条目 748 条2. ActionScript 条目的分类:(见 Actio
16、nScript 元素的分类)3. Flash 具有内置的函数是执行特定的任务一段预先编制好的程序,例如获得播放影片的 Flash Player 的版本号 (getVersion)。属于对象的函数称为方法。不属于对象的函数称为顶级函数。当然是在“动作”面板的对象中找到对象的方法,在函数中找到顶级函数。4. 动作脚本和 JavaScript 之间的一些差异: 动作脚本不支持浏览器专用的对象,例如文档、窗口和锚记。 动作脚本不能完全支持所有的 JavaScript 内置对象。 动作脚本支持 JavaScript 不允许的语法构造(例如 tellTarget 和 ifFrameLoaded 动作和斜杠
17、语法) 。但是,建议不要使用这些语法构造,而应该使用与 JavaScript 元素相同的那些动作脚本元素(例如,with、_framesloaded 和点语法) 。 动作脚本不支持某些 JavaScript 语法构造,例如 try、catch、throw 和语句标号。 动作脚本不支持 JavaScript Function 构造器。 在动作脚本中,eval 动作只能执行变量引用。 在 JavaScript 中,undefined 的 toString 是 undefined。在 Flash 5 和 Flash MX 中,为了能够兼容 Flash 4,undefined 的 toString 是
18、 “。 在 JavaScript 中,在数字环境中评估 undefined 会产生 NaN。在 Flash 5 和 Flash MX 中,为了兼容 Flash 4,评估 undefined 会产生 0。 在 JavaScript 中,当在布尔环境中评估字符串时,如果字符串的长度不为零,则结果为 true;如果字符串的长度为零,则结果为 false。在动作脚本中,字符串会转换为数字。如果该数字不是零,则结果为 true;否则结果为 false。5. 类、对象、实例、继承性在面向对象脚本中,信息按照被称为“类”的组进行组织。用户可以创建自己的类,也可以使用内置的动作脚本类;内置类位于“动作”面板的
19、“对象”文件夹中。当创建用户的类时,要定义它创建的每个对象的所有属性(特性)和方法(行为) ,就如同定义真实世界的对象一样。例如,可以说一个人有性别、身高和发色等属性,以及交谈、行走和投掷等方法。在此示例中, “人”就是一个类,并且每个人都是一个对象或该类的一个实例。 定义类可以创建一个名为构造器函数的特殊函数。 (内置类具有内置的构造器函数。 )例如,如果需要关于影片中某个自行车骑手的信息,可以创建一个构造器函数 Biker,它具有属性 time 和 distance,以及能够表示自行车行进速度的方法 getSpeed: function Biker(t, d) this.time = t;
20、this.distance = d;this.getSpeed = function() return this.time / this.distance;在此示例中,要创建一个需要两条信息或参数才能完成工作的函数:t 和 d。当调用该函数创建对象的新实例时,会将参数传递给它。下面的代码创建对象 Biker 的两个实例,称为 emma 和 hamish。emma = new Biker(30, 5);hamish = new Biker(40, 5);在面向对象脚本中,类可以按照特定的顺序相互接收属性和方法,这称为继承性。可以使用继承性来扩展或重新定义类的属性和方法。从其它类继承而来的类称为子
21、类。向其它类传递属性和方法的类称为超类。类可以既是子类又是超类。对象就是类的实例,动作脚本中的对象可以是纯的数据容器,或者它们可以在舞台上以图形化方式表示为影片剪辑、按钮或文本字段。所有影片剪辑都是内置类 MovieClip 的实例,所有按钮都是内置类 Button 的实例。每个影片剪辑实例都包含 MovieClip 类的所有属性(例如,_height、_rotation、_totalframes)和所有方法(例如,gotoAndPlay、loadMovie、startDrag) 。 6. 对象:电影剪辑、按钮和文本字段因为影片剪辑就是小型的 Flash 影片,所以它们是 Flash 影片的最
22、重要的对象:它们具有彼此独立运行的时间轴。例如,如果主时间轴只有一个帧,而该帧中的影片剪辑有十个帧,则当播放主影片时,该影片剪辑中的每个帧都会播放。这使得实例可以作为能够相互通信的自治对象。每个影片剪辑实例都有一个唯一的实例名称,以便可以通过动作找到它们。例如,在舞台上可能有多个实例(例如,leftClip 和 rightClip) ,而要求在某一时刻只播放一个。要指定通知播放某个特定实例的动作,需要使用它的名称。在下面的示例中,影片剪辑的名称为 leftClip: leftClip.play();实例名称还可以在影片播放时复制、删除和拖动影片剪辑。影片剪辑可以通过动作脚本动态设置和获得其值的
23、属性。更改和读取这些属性可以更改影片剪辑的外观和标识,这也是创建交互性的关键。例如,下面的脚本使用 setProperty 动作将 navigationBar 实例的透明度(alpha 设置)设置为 10: setProperty(“navigationBar“, _alpha, 10);7.二、ActionScript 的思想和知识结构1 基本名词定义与解释基础类:常数是不变的元素。例:常数 Key.TAB 的含义始终不变:它代表键盘上的 Tab 键。数据类型是值和可以对这些值执行的动作的集合。动作脚本数据类型包括字符串、数字、布尔值、对象、影片剪辑、函数、空值和未定义。标识符是用于表明变量
24、、属性、对象、函数或方法的名称。它的第一个字符必须是字母、下划线 (_) 或美元记号 ($)。其后的字符必须是字母、数字、下划线或美元记号。例:firstName 是变量的名称。变量是保存任何数据类型的值的标识符。可以创建、更改和更新变量。可以获得它们存储的值以在脚本中使用。例:在下面的示例中,等号左侧的标识符是变量: x = 5;name = “Lolo“;customer.address = “66 7th Street“;c = new Color(mcinstanceName);布尔值是 true 或 false 值。 表达式是代表值的动作脚本元件的任意合法组合。表达式由运算符和操作数
25、组成。例:在表达式 x + 2 中,x 和 2 是操作数,而 + 是运算符。 函数是可以向其传递参数并能够返回值的可重复使用的代码块。例:可以向 getProperty 函数传递属性名和影片剪辑的实例名,然后它会返回属性值。getVersion 函数会返回当前正在播放影片的 Flash Player 的版本。 关键字是有特殊含义的保留字。例如,var 是用于声明本地变量的关键字。不能使用关键字作为标识符。例:var 不是合法的变量名。 运算符是通过一个或多个值计算新值的术语。例如,加法 (+) 运算符可以将两个或多个值相加到一起,从而产生一个新值。运算符处理的值称为操作数。 参数(也称为参量)
26、是用于向函数传递值的占位符。例:下面的 welcome 函数使用它在参数 firstName 和 hobby 中接收到的两个值: function welcome(firstName, hobby) welcomeText = “Hello, “ + firstName + “I see you enjoy “ + hobby;目标路径是影片中影片剪辑实例名称、变量和对象的分层结构地址。可以在影片剪辑属性检查器中对影片剪辑实例进行命名。 (主时间轴的名称始终为 _root。 )可以使用目标路径引导影片剪辑中的动作或者来获得或设置变量的值。例:下面的语句是指向影片剪辑 stereoControl
27、 内的变量 volume 的目标路径: _root.stereoControl.volume对象动作类动作是在播放影片时指示影片执行某些任务的语句。例:gotoAndStop 将播放头放置到特定的帧或标签。类是可以创建的用于定义新类型对象的数据类型。要定义类,需要创建一个构造器函数。 构造器是用于定义类的属性和方法的函数。例:下面的代码通过创建名为 Circle 的构造器函数创建了一个新的 Circle 类: function Circle(x, y, radius)this.x = x;this.y = y;this.radius = radius;事件是在影片播放时发生的动作。例:在以下情
28、况时会产生不同的事件:加载影片、播放头进入帧、用户单击按钮或影片剪辑或用户通过键盘键入。 事件处理函数是管理诸如 mouseDown 或 load 等事件的特殊动作。动作脚本事件处理函数共有两类:动作和方法。但事件处理函数动作只有两个,即 on 和 onClipEvent。在“动作”工具箱中,每个具有事件处理函数方法的动作脚本对象都有一个名为“事件”的子类别。 实例是属于某个类的对象。类的每个实例包含该类的所有属性和方法。所有影片剪辑都是具有 MovieClip 类的属性(例如 _alpha 和 _visible)和方法(例如 gotoAndPlay 和 getURL)的实例。 实例名称是在脚
29、本中用来代表影片剪辑和按钮实例的唯一名称。可以使用属性检查器为舞台上的实例指定实例名称。例:库中的主元件可以称为 counter,影片中该元件的两个实例可以使用实例名称 scorePlayer1 和 scorePlayer2。下面的代码用实例名称设置每个影片剪辑实例中称为 score 的变量: _root.scorePlayer1.score += 1;_root.scorePlayer2.score -= 1;方法是分配给对象的函数。分配函数之后,可以将其作为该对象的方法进行调用。例:在下面的代码中,clear 成为 controller 对象的方法: function reset()thi
30、s.x_pos = 0;this.x_pos = 0;controller.clear = reset;controller.clear();对象是属性和方法的集合,每个对象都有自己的名称,并且都是特定类的实例。内置对象是在动作脚本语言中预先定义的。例:内置的 Date 对象可以提供系统时钟的信息。 属性是定义一个对象的属性。例:_visible 是定义是否隐藏影片剪辑的属性,所有影片剪辑都有此属性。2 层和时间线的理解:显示列表术语:显示列表是表示 Flash 电影里各个层、电影剪辑和时间线之间的关系。示意图:理解:每部电影在最初的位置有一个层,叫第 0 层(_level0) ,在该层上的时
31、间线叫主时间线,在第 0 层上可以放置另一层,叫第 1 层(_level1),同理可以有第 N 层(_levelN) 。在某一层上可以放置电影剪辑实例(应该理解电影剪辑实例放置在时间线之中)电影剪辑实例又有自己的时间线,电影剪辑之中又可以放置电影剪辑。根据电影剪辑之间的关系,有父剪辑、父时间线、子剪辑、子时间线等名词。在各层和各电影剪辑中,可以有各种内置对象和创建的对象。底层对象可能会影响到上层对象。例如改变父时间线的_xscale,会导致嵌入的子时间线的_xscal 也发生改变。时间线之间可以彼此发送消息,例如一个电影剪辑的时间线最后一帧的动作指示开始播放另一电影剪辑的时间线。3 数据类型、
32、变量和常量的知识结构ActionScript 的数据类型nullundefinedstringnumberbooleanobjectmovieclip特殊数据类型nullundefined原始数据类型stringnumberboolean引用数据类型objectmovieclip特殊常量nullundefined常量和变量stringnumberboolean实例objectmovieclip数据类型方法类型转换方法Array()String()Boolean()Number()Object()类型测定方法typeof()创建变量隐式创建变量:自动变量类型指定显示创建变量:严格变量类型指定变量
33、命名规则4 变量的知识结构和要点(1) 命名规则 符合标识苻命名标准; 不能是保留字; 不能是 ActionScript 的关键字; 不能是类名。(2)变量的分类和作用范围 本地变量: 的范围之内,例如以下例子:function makeDays() var i;for( i = 0; i monthArraymonth; i+ ) _root.Days.attachMovie( “DayDisplay“, i, i + 2000 );_root.Daysi.num = i + 1;_root.Daysi._x = column * _root.Daysi._width;_root.Daysi
34、._y = row * _root.Daysi._height;column = column + 1;if (column = 7 ) column = 0;row = row + 1; 时间线变量:应用于时间线上的变量,注意应该在第一帧创建变量,因为时间线上前面的帧无法使用后面帧定义的变量。 全局变量:全局变量和函数对于整个电影中的每一时间线和范围而言都是可见的。若要创建具有全局范围的变量,要在变量名称前使用 _global 标识符,并且不使用 var = 语法。例如:var _global.myName = “George“; / 语法错误_global.myName = “George
35、“; /正确注意:在有同名变量的情况下,局部变量覆盖全局变量。5 数组相关知识在 ActionScript 中,数组 Array 看成是对象(数学内置对象) ,那么按照ActionScript 的一贯做法,它的原型叫 Array 类,它的应用实例叫 Array 对象。Array 对象的下标叫索引(index) ,索引是从 0 到 n-1 的。例如第一个数组元素是my_Array0。Array 实例在使用之前需要 new 一下。Array 的方法、属性:New array 构造 Array Array.length 指定数组中元素数量的非从零开始的整数Array.concat() 连接参数,并将
36、其作为新数组返回Array.join() 将数组内的所有元素联接为一个字符串Array.pop() 删除数组中最后一个元素,并返回该元素的值Array.push() 将一个或多个元素添加到数组的结尾,并返回该数组的新长度Array.reverse() 倒转数组的方向Array.shift() 删除数组中第一个元素,并返回该元素的值Array.slice() 提取数组中的一部分,并将该部分作为新数组返回Array.sort() 就地对数组进行排序Array.sortOn() 基于数组中的某个字段对数组进行排序Array.splice() 在数组中添加元素和删除元素Array.toString()
37、 返回表示 Array 对象中元素的字符串值Array.unshift() 将一个或多个元素添加到数组的开头,并返回该数组的新长度6 事件的知识结构(1)处理事件的途径 事件处理函数方法事件处理函数方法是将事件处理归并到某一类的方法中去,该方法在事件在该类的实例上发生时调用。事件处理函数的基本结构是: 对象名.事件名称 = 函数名 function () 程序代码可以用于事件处理函数的对象有:Button、ContextMenu、ContextMenuItem、Key、LoadVars、LocalConnection、Mouse、MovieClip、MovieClipLoader、Select
38、ion、SharedObject、Sound、Stage、TextField、XML 和 XMLSocket。 事件侦听器事件侦听器的用法是让一个称作侦听器对象接收由其它对象(称作广播器对象)生成的事件,广播器对象注册侦听器对象以接收由该广播器生成的事件。例如,注册影片剪辑对象以从舞台接收 onResize 通知,或者按钮实例可以从文本字段对象接收 onChanged 通知。注意可以注册多个侦听器对象以从一个广播器接收事件,也可以注册一个侦听器对象以从多个广播器接收事件。事件侦听器的事件模型类似于事件处理函数的事件模型,只是有以下两个差别: 分配事件处理函数的对象不是发出该事件的对象。 调用广
39、播器对象的特殊方法 addListener(),该方法将注册侦听器对象以接收其事件。 这种事件处理的格式是:侦听器对象名.事件名称 = function()程序代码;广播器名称.addListener(侦听器对象名);理解:指定的侦听器对象可以是任何对象,例如舞台上的影片剪辑或按钮实例,或者可以是任何动作脚本类的实例。事件名称是在广播器上发生的事件,然后将该事件广播到 listenerObject。可以向一个事件广播器注册多个侦听器。事件侦听器可用于以下动作脚本类的对象:Key、Mouse、MovieClipLoader、Selection、TextField 和 Stage。 按钮和影片剪辑
40、事件处理函数这类方法较为简单,就是直接使用 on()和 onClipEvent()处理函数来响应事件的发生。其格式是:on(按钮事件)程序代码onClipEvent(影片剪辑事件)程序代码可以使用的按钮事件有:press 在鼠标指针经过按钮时按下鼠标按钮。 release 在鼠标指针经过按钮时释放鼠标按钮。 releaseOutside 当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮。 rollOut 鼠标指针滑出按钮区域。 rollOver 鼠标指针滑过按钮。 dragOut 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域。 dragOver 在鼠标指针滑过
41、按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。 keyPress (“key“) 按下指定的键。对于此参数的 key 部分,需指定键控代码或键常量。可以使用的电影剪辑事件有:load 影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。 unload 在从时间轴中删除影片剪辑之后,此动作在第 1 帧中启动。在向受影响的帧附加任何动作之前,先处理与 Unload 影片剪辑事件关联的动作。 enterFrame 以影片剪辑帧频不断触发的动作。首先处理与 enterFrame 剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作。 mouseMove 每次移动鼠标时启动此动作。_xmous
42、e 和 _ymouse 属性用于确定当前鼠标位置。 mouseDown 当按下鼠标左键时启动此动作。 mouseUp 当释放鼠标左键时启动此动作。 keyDown 当按下某个键时启动此动作。使用 Key.getCode() 获取有关最后按下的键的信息。 keyUp 当释放某个键时启动此动作。使用 Key.getCode() 方法获取有关最后按下的键的信息。 data 当在 loadVariables() 或 loadMovie() 动作中接收数据时启动此动作。当与 loadVariables() 动作一起指定时,data 事件只在加载最后一个变量时发生一次。当与 loadMovie() 动作一
43、起指定时,获取数据的每一部分时,data 事件都重复发生。 7 ActionScript 有关文本的知识与 ActionScript 文本有关的知识可以通过下面的图来认识:8文本对象TextField 类TextFormat 类方法属性事件侦听器构造函数方法属性9 总结:类的分类_root创作C/S影片核心对象argumentsbooleanarraydatefunctionmathnumber其它objectstringaccessibilitycapabilityesbuttoncapabilityesfunctioncolorkeymousemovieclipselectionmovie
44、clipsoundstagesystemtextfieldtextformat其它loadvarsxmlsocketxml实时预览自定动作UI 组件FCheckBoxxmlsocketFComboBoxFListBoxFRadioButtonFPushButtonFScrollBarFstyleFormatFScrollPaneFLASH 的类结构关系附录 A 演示与上机实习特别说明:书附光盘的原程序整体打包在本课程网站上,本附录的每个实例就不单独提供下载了。实例一 酷打字效果 实例效果:酷打字效果 学习理解要点1方法、函数、属性和语句创建对象:myObj = new Object()创建文本
45、格式对象:new TextFormat()事件触发处理函数:myObj.onKeyDown创建电影剪辑实例:_root.createEmptyMovieClip()创建文本地段实例:myObj.createTextField()删除电影剪辑实例:removeMovieClip()事件触发处理函数:Key.addListener()事件触发处理函数:_root.onEnterFrame()窗口消息输出:trace()2知识构造事件触发处理函数一般对象属性当前对象的指定 this实例程序/创建一个新的对象 myObj,注意 Object 对象位于类层次结构的根处myObj = new Object
46、();/定义尺寸大小为 36 的 Times New Roman 字体,颜色值为 0x336666,/同时字符加粗显示/*创建 textformat 对象,构造函数格式是:new TextFormat(font, size, color, bold, italic, underline, url, target, align, leftMargin, rightMargin, indent, leading)textformat 的属性有:font: 以字符串形式表示的文本字体名称。Size: 指示磅值的整数。Color: 使用此文本格式的文本的颜色。包含三个 8 位 RGB 分量的数字;例如
47、,0xFF0000 为红色、0x00FF00 为绿色。Bold: 指示文本是否为粗体的布尔值。Italic: 指示文本是否为斜体的布尔值。Underline: 指示文本是否带有下划线的布尔值。url: 使用此文本格式的文本超链接到的 URL。如果 url 为空字符串,则表示文本没有超链接。target :显示超链接的目标窗口。如果目标窗口为空字符串,则文本显示在默认目标窗口 _self 中。如果 url 参数设置为空字符串或值 null,虽然可以获取或设置此属性,但该属性不起作用。 Align: 以字符串形式表示的段落对齐方式。如果为 “left“,则段落为左对齐。如果为“center“,则段
48、落居中。如果为 “right“,则段落为右对齐。LeftMargin: 指示段落的左边距,以磅为单位。RightMargin:指示段落的右边距,以磅为单位。indent :一个整数指示从左边距到段落中第一个字符的缩进量。Leading:一个数字,指示行与行之间的前导垂直间距量。*/myFormat = new TextFormat(“Times New Roman“,36,0x336666,true);/当键盘键按下时执行 function()花括号之间的内容myObj.onKeyDown = function() /i=i+1,i 的初始值为 0i+;/创建一个电影剪辑实例,其实例名是 Li
49、,深度是 i/构造电影剪辑实例的格式:objectname.createemptymovieclip(“实例名”,深度)/在根上创建电影剪辑,原点在左上角,深度确定了层的位置,注意根上最初的层深度为 0,就是上面 myObj 原来有的那一层_root.createEmptyMovieClip(“L“+i,i);/创建一个字体效果,其位置是在 0,0 其宽度与高度都是 60/原注释有错误/在电影剪辑 Li(就是根的 Li 层上)使用创建文本字段的方法,创建新的文本字段对象实例,其名为”myText” ,深度为 1(就是存放 1 个字符) ,字段的位置分别为 x=10,y=10(注意原点在左上角) ,字段的