资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机二维动画教程 普通高等院校数字艺术类规划教材第8章 脚本应用基础 【教学目标】 了解ActionScript的概念 掌握ActionScript的语法 认识动作面板,掌握输入代码的方法 掌握动画属性的改变、随机取值和画 面跳转的处理 掌握事件响应和处理的方法 掌握自定义函数的含义与创建8.1 ActionScript的概念 什么是程序 程序是计算机执行的一系列指令或步骤。 每一步最终都涉及到对某一段信息或数据的处理。 通常认为,计算机程序只是提供给计算机并让它逐步执行的指令列 表。每个单独的指令都称为“语句”,一般以分号标志结束。8.1 ActionScript的概念 什么是ActionScript ActionScript中文译法是“动作脚本”,它是Flash内置的脚本语言,是 一种描述、规定动画中的对象如何表现、运动的命令序列。 ActionScript程序一般由语句、函数和变量组成,主要涉及到变量、 函数、数据类型、表达式和运算符等,它们是ActionScript的基石。 可以由单一动作组成,如指示动画停止播放的操作,也可以由一系 列动作语句组成,如先计算条件,再执行动作。 8.1 ActionScript的概念 在ActionScript面向对象的编程中,任何对象都可以包含3种类型的特性。 属性:表示与对象绑定在一起的若干数据项的值,如矩形的长、宽、颜色 。 方法:可以由对象执行的操作,如动画播放、停止或跳转等。 事件:由用户或系统内部引发的、可被ActionScript识别并响应的事情,如 鼠标单击、用户输入、定时时间到等事件。这些元素共同用于管理程序使用的数据块,并用于确定执行哪些动作以及 动作的执行顺序。ActionScript为响应特定事件而执行某些动作的过程称为“ 事件处理”。在编写执行事件处理代码时,Flash需要识别3个重要元素。 事件源:发生该事件的是哪个对象。 事件:将要发生什么事情,以及程序希望响应什么事情。 响应:当事件发生时,程序希望执行哪些步骤。在ActionScript面向对象的编程中,任何对象都可以包含三种 类型的特性。: 属性:表示与对象绑定在一起的若干数据项的值,如矩形的 长、宽、颜色。 方法:可以由对象执行的操作,如动画播放、停止或跳转等 。 事件:由用户或系统内部引发的、可被ActionScript识别并响 应的事情,如鼠标单击、用户输入、定时时间到等事件。这些元素共同用于管理程序使用的数据块,并用于确定执行哪 些动作以及动作的执行顺序。ActionScript为响应特定事件而 执行某些动作的过程称为“事件处理”。在编写执行事件处理代 码时,Flash需要识别三个重要元素。 事件源:发生该事件的是哪个对象。 事件:将要发生什么事情,以及程序希望响应什么事情。 响应:当事件发生时,程序希望执行哪些步骤。无论何时编写处理事件的ActionScript代码,都会包括这三个元素,并且代码 将遵循以下基本结构。function eventResponse(eventObject:EventType):void /此处是为响应事件而执行的动作。 eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);此代码执行两个操作。首先,定义一个函数,这是指定为响应事件而要执行的 动作的方法。接下来,调用源对象的addEventListener()方法,实际上就是为 指定事件“订阅”该函数,以便当该事件发生时,执行该函数的动作。一旦编写了事件处理函数,就需要通知事件源对象(发生事件的对象, 如按钮)程序希望在该事件发生时调用函数。可通过调用该对象的 addEventListener()方法来实现此目的(所有具有事件的对象都同时具 有addEventListener()方法)。addEventListener()方法有两个参数: u第一个参数是希望响应的特定事件的名称。同样,每个事件都与一个 特定类关联,而该类将为每个事件预定义一个特殊值;类似于事件自己 的唯一名称(应将其用于第一个参数)。 u第二个参数是事件响应函数的名称。请注意,如果将函数名称作为参 数进行传递,则在写入函数名称时不使用括号。8.1 ActionScript语法基础 和其他脚本语言一样,ActionScript遵循自己的语法规则,保留关键字,提 供运算符,并且允许使用变量存储和获取信息。ActionScript包含内置的对 象和函数,并且允许用户创建自己的对象和函数。 ActionScript程序一般由语句、函数和变量组成,主要涉及到变量、函数、 数据类型、表达式和运算符等,它们是ActionScript的基石。可以由单一动 作组成,如指示动画停止播放的操作,也可以由一系列动作语句组成,如先 计算条件,再执行动作。1、 变量的声明 变量可用来存储程序中使用的值。要声明变量,必须将 var 语句和变量 名结合使用。例如,下面的语句声明一个名为 i 的变量: var i; 如果在声明变量时省略了 var 语句,在严格模式下将出现编译器错误, 在标准模式下将出现运行时错误。 要将变量与一个数据类型相关联,则必须在声明变量时进行此操作。在 声明变量时不指定变量的类型是合法的,但这在严格模式下将产生编译 器警告。可通过在变量名后面追加一个后跟变量类型的冒号 (:) 来指定 变量类型。例如,下面的代码声明一个 int 类型的变量 i: var i:int;8.2.1 变量 8.2.1 变量 2、变量的赋值 可以使用赋值运算符( = )为变量赋值。例如,下面的代码声明一个变量i并将值 20赋给它: var i:int; i = 20; 也可以在声明变量的同时为变量赋值,如下面的示例所示: var i:int = 20; 如果要声明多个变量,则可以使用逗号运算符(,)来分隔变量,从而在一行代码 中声明所有这些变量。例如,下面的代码在一行代码中声明3个变量: var a:int, b:int, c:int; 也可以在同一行代码中为其中的每个变量赋值。例如,下面的代码声明3个变量 (a、b和c)并为每个变量赋值: var a:int = 10, b:int = 20, c:int = 30;8.2.1 变量 3、默认值“默认值”是在设置变量值之前变量中包含的值。首次设置变量的值实际 上就是“初始化”变量。如果我们声明了一个变量,但是没有设置它 的值,则该变量便处于“未初始化”状态。未初始化的变量的值取决 于它的数据类型,一般来说,Boolean类型变量的默认值为“false”, int类型变量的默认值为0。如果我们声明某个变量,但是未声明它的数据类型,则将应用默认数据 类型*,这实际上表示该变量是无类型变量。如果我们没有用值初 始化无类型变量,则该变量的默认值是undefined。8.2.2 语法规则 1、区分大小写 ActionScript 3.0 是一种区分大小写的语言。只是大小写不同的标识符 会被视为不同。例如,下面的代码创建两个不同的变量:var num1:int;var Num1:int; 2、点语法 可以通过点运算符 (.) 来访问对象的属性和方法。使用点语法,可以使 用后跟点运算符和属性名或方法名来引用对象的属性或方法。例如:ball.x=100; /对象ball的x坐标为100ball.alpha=50; /对象ball的透明度值为508.2.2 语法规则 3、分号 可以使用分号字符 (;) 来终止语句。如果我们省略分号字符,则编译器将假设每 一行代码代表一条语句。但是一般程序员都习惯使用分号来表示语句结束,因 此,我们也应当养成这样一个习惯,以使自己的代码更易于阅读。 使用分号终止语句可以在一行中放置多个语句,但是这样会使代码变得难以阅 读。 4、小括号 在 ActionScript 3.0 中,可以通过三种方式来使用小括号 ()。 (1)可以使用小括号来更改表达式中的运算顺序。组合到小括号中的运算总是 最先执行。例如,小括号可用来改变如下代码中的运算顺序:trace(2 + 3 * 4); / 14trace( (2 + 3) * 4); / 20 (2)可以结合使用小括号和逗号运算符 (,) 来计算一系列表达式并返回最后一 个表达式的结果,如下面的示例所示: (3)可以使用小括号来向函数或方法传递一个或多个参数,如下面的示例所示 ,此示例向 trace() 函数传递一个字符串值:trace(“hello“); / hello5、注释ActionScript 3.0 代码支持两种类型的注释:单行注释和多行注释。编 译器将忽略标记为注释的文本。 单行注释以两个正斜杠字符 (/) 开头并持续到该行的末尾。例如,下面 的代码包含一个单行注释:var someNumber:Number = 3; / 单行注释 多行注释以一个正斜杠和一个星号 (/*) 开头,以一个星号和一个正斜杠 (*/) 结尾。 /* 这是一个可以跨 多行代码的多行注释。 */8.2.2 语法规则 8.2.3 运算符 8.2.3 运算符 8.2.4 条件语句 1、if.else if.else 条件语句用于测试一个条件,如果该条件存在 ,则执行一个代码块,否则执行替代代码块。例如,下 面的代码测试 x 的值是否超过 20,如果是,则生成一个 trace() 函数,否则生成另一个 trace() 函数: if (x 20) trace(“x is 20“); else trace(“x is 20) trace(“x is 20“); else if (x 0) trace(“x is negative“); 3、switch 如果多个执行路径依赖于同一 个条件表达式,则 switch 语句非常 有用。它的功能大致相当于一系列 if.else if 语句,但是它更便于阅读。 switch 语句不是对条件进行测试以获 得布尔值,而是对表达式进行求值并 使用计算结果来确定要执行的代码块 。代码块以 case 语句开头,以 break 语句结尾。例如,下面的 switch 语 句基于由 Date.getDay() 方法返回的 日期值输出星期日期:var someDate:Date = new Date(); var dayNum:uint = someDate.getDay(); switch(dayNum) case 0:trace(“星期天“);break;case 1:trace(“星期一“);break;default:trace(“我也不知道是星期几“);break; 8.2.5 循环语句 1、for for 循环用于循环访问某个变量以获得特定范围的值 。必须在 for 语句中提供 3 个表达式:一个设置了初始 值的变量,一个用于确定循环何时结束的条件语句,以 及一个在每次循环中都更改变量值的表达式。例如,下 面的代码循环 5 次。变量 i 的值从 0 开始到 4 结束,输 出结果是从 0 到 4 的 5 个数字,每个数字各占 1 行。 var i:int; for (i = 0; i 5; i+) trace(i); 2、for.in for.in 循环用于循环访问对象属性或数组元素。例如 ,可以使用 for.in 循环来循环访问通用对象的属性(不 按任何特定的顺序来保存对象的属性,因此属性可能以 看似随机的顺序出现): var myObj:Object = x:20, y:30; for (var i:String in myObj) trace(i + “: “ + myObji); / 输出: / x: 2
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号