第十三章:Action Script
Action Script 3.0 类和对象
Action Script 3.0 类和对象ActionScript中的类和对象都是由属性、方法和事件组成。
通过自带类或自定义类提供属性、方法和事件给对象,管理对象的数据块、决定对象可以执行哪些动作,以及执行动作的前后顺序。
在编写一些小的ActionScript脚本程序时,这些程序往往只包含几个彼此交互的对象,类的作用并不明显。
随着程序作用域的不断扩大以及其必须管理的对象不断增加,类的作用会越来越重要。
1.自定义类与导入类ActionScript的类分为两种,包括公共类和自定义类。
其中,公共类(软件自带的类)有数百种,可应用于多种方面。
而自定义类则通常由用户自行编写,以实现某方面的功能。
一个自定义类通常包括类名和类体,类体又包含类的属性和方法等几个部分。
类的结构如图2-2所示。
图2-2 类的结构在创建类时,首先需要声明类的命名空间,然后定义类的名称。
在类体中,可以声明变量或实例化一些对象作为类的属性,还可以创建主函数和各种自定义函数作为类的方法。
创建一个典型的类,结构如下所示。
package mypackage{//创建包,并为其命名public class simpleclass{//创建自定义类,并定义其命名空间public var bookname:String="Action Script 3.0编程特效实战技术解析";//声明对象,作为类的属性public function print():void{//创建自定义函数,做为类的方法trace("书名:"+bookname);}}}使用已创建的类,可以先将类实例化为对象,然后调用对象的属性和方法。
例如,调用上面的类,其方法如下所示。
var simpleobject:simpleclass=new simpleclass();//将类实例化为对象simpleobjecttrace(simpleobject.bookname);//调用类的属性bookname在多数情况下,一个类应写在一个.as文件中,以防止多个类之间的变量名等互相干扰,也方便将自定义类进行分类管理。
ActionScript菜鸟基础终极教程
第1章揭开ActionScript的神秘面纱ActionScript是Flash内置的编程语言,用它为动画编程,可以实现各种动画特效、对影片的良好控制、强大的人机交互以及与网络服务器的交互功能。
ActionScript是一门吸收了C++、Java以及JavaScript等编程语言部分特点的新的语言。
ActionScrip使用英文单词和元件提供了一种为Flash影片设置指令的方法。
它的存在确保了Flash影片较之普通的按照线性模式播放的动画具备强大得多的人机交互能力。
可以为时间轴中的关键帧、按钮和影片剪辑添加ActionScript。
选中这些关键帧、按钮和影片剪辑,打开其动作面板,你就可以看到它们都添加了哪些脚本。
1.1 Flash中的程序交给计算机执行的指令集称为程序。
程序的另一个名称叫做脚本。
从现在开始,我们将这些指令集统称为脚本。
脚本都必须有它的运行环境,就ActionScript来说,它的运行环境就是Flash影片。
ActionScript 可以指挥Flash影片该做什么。
在某些情况下,ActionScript还可以指挥其他的东西,如用户的操作系统、浏览器等。
但是ActionScript最主要的用途还在于控制Flash影片内部的东西。
短的脚本可以只有一行,长的脚本可以长达几千行。
它们可以作用于Flash影片的一个部分,也可以贯穿影片始终。
有人把使用了脚本的整个Flash影片看作一个程序,也有人把影片中单独出现的脚本看作一个程序。
这两种看法都正确,因为一个单独的程序也可以被定义成若干小程序。
你可能对某些编程语言已经相当熟悉或者有所了解。
例如广大网页设计者所熟知的JavaScript,以及另一种相似的语言VBScript,它们能用来编辑动态网页。
HTML(Hypertext Markup Language 超文本置标语言)是另一种特殊的语言,浏览器将按照它所包括的指令正确地显示文本和图片。
在学校里面,你可能接触过一些编程方面的课程,如BASIC、Pascal、C、Java等。
Action Script 3.0 值传递和引用传递
Action Script 3.0 值传递和引用传递函数的参数可以是任何数据类型的变量,数据类型可以分为简单数据类型和复杂数据类型。
当使用简单数据类型变量作为参数时,传递的是值;当使用复杂数据类型变量作为参数时,传递的是引用。
值和引用是简单数据类型和复杂数据类型的最大区别。
对于简单数据类型的参数来说,当调用函数开始时,发生了从实参向形参的值传递。
当函数调用结束后,形参并未向实参进行值传递,这种数据传递称为值传递。
例如,创建一个名为myTest()的函数,该函数定义了两个数据类型均为int 型的xParam 和yParam 参数。
当使用mValue 和nValue 参数调用函数时,xParam 和yParam 参数将用对int 对象的引用进行初始化,int 对象由mValue 和nValue 表示,代码如下所示。
function myTest(xParam:int,yParam:int):void {xParam++;yParam++;trace(xParam,yParam); }var mValue:int = 3;var nValue:int = 7;trace(mValue,nValue); //输出结果为3和7myTest(mValue,nValue); //输出结果为4和8trace(mValue,nValue); //输出结果为3和7从测试结果可以看出,调用函数时,形参的值开始时是由实参传递来的值3和7,递增后变为4和8。
但形参的值改变后并没有传递给实参,所以调用函数前后实参的值都是3和7。
当调用函数开始时,发生了从实参向形参的数据传递,当调用函数结束时形参也会向实参进行数据传递,这种类型传递称为引用传递或地址传递。
例如,创建一个名为myObj 的对象,该对象具有两个属性:x 和y 。
该对象作为参数传递给myTest()函数。
因为该对象不是基元类型,所以它不但按引用传递,而且还保持一个引用,代码如下所示。
用Action script动作脚本制作flash下雨特效
带来了新挑 战, 同时也 为学生工作提供了 内容和 形 式 的有 机 统 一 , 以充 分 发 挥 网 络 【 李宏 亭. 时期 高校 学生 工作 的思考 1 】 新
新 的 、 代 化 的手 段和 方 法 。 现 因此 , 校 学 的服 务 功 能 、 导功 能 和 教化 功 能 。 高 引 [】 思 想政 治 教 育研 究 ,0 5 3 J. 2 0. .
u d tAf r e t ; p a e t Ev n e O
C++:
4 S t V r a l —— 给 变 量赋 值 。 、e a i be 与 片 剪辑元件拖 拽到 画布 中。在 属性面 板 以 内 的随 机
其 他 动 作 不 同, 它 并 不 在 脚 本 中 出现 , 而 上 , 影 片 剪 辑 名 称 命 名 为 ri, 个 必 把 a 这 n
1动 作 : 在 播 放 S 、 是 WF文 件 时 指 示
1、 1 目标路 径 : 目标 路 径 是 S WF文 件
小 、 动 性 强 、 容 性好 的特 点 , 直 受 到 S 互 兼 一 WF文件 执 行某 些 任 务 的语 句 。
中影片剪辑实例名称变量 和对象的分层
三、 制作 特 效 用 到 的 A 本 s脚
才能紧跟时代步伐 , 满足 习上 的后 进生 、 生活 上的贫困生、 心理上 生工作进 网络应把握好三“ 点 : 一是找准 坚持 以生为本 , 要用主流、 健康、 科学的思想文化 学生的发展需求 , 为构建和谐校园 , 培养 的弱势生高度关注 , 从而为每个学生 的成 立足点,
长 营 造 良好 的氛 围 , 助 引 导每 个 学 生 积 信 息 占领 网络 ; 是 挖 掘 切 入 点 , 采 取 全面发展的高素质人才做 出应有的贡献。 帮 二 要
Action Script 3.0 按钮元件
Action Script 3.0 按钮元件使用按钮元件可以创建用于响应鼠标单击、滑过或其它动作的交互式按钮。
可以定义与各种按钮状态关联的图形,然后将动作指定给按钮实例。
按钮实际上是四帧的交互影片剪辑。
当为元件选择按钮行为时,Flash会创建一个包含四帧的时间轴。
前三帧显示按钮的三种可能状态;第四帧定义按钮的活动区域。
时间轴实际上并不播放,它只是对指针运动和动作做出反应,跳转到相应的帧,如图1-19所示。
图1-19 按钮时间轴要制作一个交互式按钮,可把该按钮元件的一个实例放在舞台上,然后给该实例指定动作。
必须将动作分配给文档中按钮的实例,而不是分配给按钮时间轴中的帧,如图1-20所示。
鼠标经过第一个按钮鼠标经过最后一个按钮图1-20 按钮效果按钮元件的时间轴上的每一帧都有一个特定的功能:●第一帧是弹起状态,代表指针没有经过按钮时该按钮的状态。
●第二帧是指针经过状态,代表指针滑过按钮时该按钮的外观。
●第三帧是按下状态,代表单击按钮时该按钮的外观。
●第四帧是点击状态,定义响应鼠标单击的区域。
此区域在SWF文件中是不可见的。
用户可以使用影片剪辑元件或按钮组件创建一个按钮。
其中,使用影片剪辑创建按钮时,可以添加更多的帧到按钮或添加更复杂的动画。
但是,影片剪辑按钮的文件大小要大于按钮元件;使用按钮组件允许将按钮绑到其它组件上,在应用程序中共享和显示数据。
提示使用字体元件可以导出字体并在其它Flash 文档中使用该字体。
Flash 提供了各种内置组件(即带有已定义参数的影片剪辑),您可以使用这些组件将用户界面元素(如按钮、复选框或滚动条)添加到文档中。
Action Script 3.0 自定义函数
Action Script 3.0 自定义函数在actionScript 3.0中可以通过两种方法来定义函数:使用函数语句和使用函数表达式。
如果采用静态或严格模式的编程,则应该使用函数语句来定义函数;如果有特定的需求,需要用函数表达式来定义函数,则才使用该方法。
函数表达式更多地运用地动态编程或标准模式编程中。
1.函数语句函数语句是在严格模式中定义函数的首选方法。
函数语句是以function关键字为开头,其使用语法如下所示。
function 函数名(参数列表):数据类型{代码块}其中,函数名用来说明函数的功能,因此,函数名的命名最好能够表达要实现的功能。
例如,playMovie表示播放影片,toString表示转换为字符串类型,nextFrame表示跳转到下一帧,getTime表示获取时间。
函数根据需要,可以向函数中的代码传递外部的变量即参数。
如果不需要传递参数,则不需要加入参数,这样的函数叫做无参函数。
例如,play()函数就是一个无参函数。
如果函数需要传递参数,这样的函数叫做有参函数。
当传递多个参数时,则在小括号中以逗号来分隔参数列表。
例如,trace()函数就是有参函数,可以向这个函数传递一个或多个参数。
函数中的代码块可以返回一些数据,这些数据可以是简单数据类型,也可以是复杂数据类型。
数据类型表示函数返回的数据类型,当不需要返回数据时,数据类型应该标识为void,即表示没有返回值。
例如,trace()函数就没有返回值,而toString()函数就返回一个字符串,代码如下所示。
var num:Number=123.456;var str:String=num.toString();trace(str,typeof(str));上面的代码使用toString()函数将数字型数据转换为字符串,并返回该字符串。
然后,通过“=”运算符把这个字符串赋值给变量str。
注意,trace()函数就不能这样使用,因为它没有返回值。
Action Script 3.0 for循环语句
Action Script 3.0 for循环语句for循环语句是一种功能强大且使用灵活的语句。
其不仅适用于循环次数确定的情况,还适用于循环次数不确定,仅给出循环结束条件的情况。
1.简单的for语句。
for语句执行的循环由多个判断来维持。
一个完整的for语句语法结构由如下组成。
for(初始表达式;条件表达式;递增递减表达式;) {循环体}for循环语句有3个条件表达式,其执行过程为:首先执行初始表达式,以初始表达式作为循环的初始值。
然后,执行条件表达式,如条件表达式为true(真),则执行循环体;如条件表达式为false(假),则停止执行循环体。
在执行循环时,以递增递减表达式为循环递增或递减的范围,如图3-7所示。
图3-7 for语句的执行过程典型的使用for语句的程序即计算从1~100所有数之和,如下所示。
var sum:int;//声明变量sum为整型数据for (var i:int=1;i<=100;i++){//定义循环的条件,循环初始值为1,结束值为100,循环递增1sum+=i;//相当于sum=sum+i}trace("从1到100的数之和为:"+sum);//输出sum的值在这段程序中,首先进行第1次循环,执行i=1。
然后,进行条件判断i<=100,其值为真,执行sum+=i。
然后,执行i++,进行第2次循环,直到i等于101时,停止执行循环体。
在for循环中,可以在初始表达式中同时声明多个初始变量,两个表达式之间用逗号“,”隔开,例如计算100之内奇数之和,如下所示。
for (var sum:int,i:int=1; i<100; i+=2) {//声明i和sum为整数,且i的初始值为1,最大值小于100,循环递增1sum+=i;//相当于sum=sum+i}trace("从1到100的奇数和为"+sum);//输出sum的值使用for循环和使用其他条件语句、循环语句一样,可以实现嵌套。
Action Script 3.0 练习 播放音频文件
Action Script 3.0 练习播放音频文件Flash可以直接播放外部的音频文件。
将URLRequest对象获取的音频文件URL传递给Sound对象的load()方法,即可加载该音频文件。
然后,通过Sound对象的play()方法和SoundChannel对象的stop()方法,来控制声音的播放、暂停和停止。
如果用户想要查看MP3文件的ID3信息,可以通过Sound对象的id3属性来获取。
效果如图12-1所示。
图12-1 MP3播放器(1)新建530×232像素的空白文档,将素材图像导入到【库】面板中,并将背景图像拖入到舞台中,如图12-2所示。
图12-2 导入素材图像(2)新建片剪辑元件,并设置“播放”、“暂停”和“停止”按钮的【实例名称】分别为“playBtn”、“pauseBtn”和“stopBtn”。
然后,将其拖入到舞台相应的位置,如图12-3所示。
图12-3 创建“控制按钮”元件(3)将“CD盒”图像转换为影片剪辑元件,并设置其【实例名称】为“CD”。
然后,为该元件应用“投影”和“斜角”滤镜,如图12-4所示。
图12-4 应用滤镜(4)在舞台的右上角创建一个“动态文本”,并设置其【实例名称】为“per”,如图12-5所示。
图12-5 创建动态文本(5)保存该Flash源文件。
然后,在相同目录的文件夹中新建MP3.as文件。
在该文件中自定义类、函数和变量,并导入所需的类,代码如下所示。
package {import flash.display.Sprite;import flash.display.MovieClip;import flash.events.IOErrorEvent;//导入产生错误事件类import flash.media.Sound;//导入声音类import .URLRequest;//导入获取URL地址类import flash.events.Event;//导入事件类import flash.events.MouseEvent;//导入鼠标事件类import flash.media.SoundChannel;//导入声音通道类import flash.media.SoundLoaderContext;//导入声音缓冲类import flash.text.TextField;import flash.system.System;public class MP3 extends Sprite {private var _sound:Sound;//创建声音对象private var channel:SoundChannel;//创建声音通道对象private var id3M:MovieClip;public function MP3() {//主函数体}}}(6)在MP3类中创建loadSound()函数,该函数用来加载并播放外部MP3文件,然后侦听加载音频文件过程中是否发生错误,代码如下所示。
Action Script 3.0 GlowFilter类
Action Script 3.0 GlowFilter类使用GlowFilter类可以为显示对象应用发光效果。
有多个用于发光样式的选项,包括内侧发光、外侧发光以及挖空模式。
发光滤镜可以应用到任何显示对象(即从DisplayObject 类继承的对象),例如MovieClip、SimpleButton、TextField和Vedio对象,以及BitmapData 对象。
发光滤镜同样支持舞台缩放。
但是,它不支持常规缩放、旋转和倾斜。
如果对象本身进行了缩放(如将scaleX和scaleY设置为除1.0以外的其它值),滤镜将不进行缩放。
只有用户在舞台中进行放大时它才会缩放。
下面列出了GlowFilter类的属性,可以在发光滤镜的构造函数内以参数的形式设置这些属性,也可以在构造函数之后将其定义为属性:●alpha(:Number)该属性用来指定颜色的Alpha透明度,有效值为0到1。
●blurX和blurY(:Number)这两个属性用来指定发光效果的模糊程度,blurX属性指定水平模糊量,blurY指定垂直模糊量。
有效值为0到255(浮点),默认值为6。
2的乘方值(如2、4、8)经过优化,呈现速度与其它值更快。
●color(:uint)该属性指定光晕的颜色,有效值为十六进制格式0xRRGGBB,默认值为0xFFFFFF。
●inner(:Boolean)该属性指定发光是否为内侧发光。
如果值为true表示内侧发光,发光就会覆盖到对象上,并从形状的外边缘逐渐向内减淡●knockout(:Boolean)该属性用来指定对象是否具有挖空效果。
值为true将使对象的填充变为透明,并显示文档的背景颜色,默认值为false(不应用挖空效果)。
●quality(:Number)该属性用来指定对象应用滤镜的次数,默认值为BitmapFilterQuality.LOW,与应用一次滤镜等效。
值BitmapFilterQuality.MEDIUM两次应用滤镜;值BitmapFilterQuality.HIGH 三次应用滤镜。
Action Script 3.0 颜色拾取器组件
Action Script 3.0 颜色拾取器组件颜色拾取器组件(ColorPicker)是ActionScript3.0中应用较普遍的组件,其作用是提供一个或多个颜色样本的列表供用户选择。
一个完整的颜色拾取功能除了包括颜色拾取器组件(ColorPicker)外,还应包含颜色拾取事件(ColorPickerEvent)类。
通过颜色拾取事件类,可以将颜色应用到影片的对象中。
在ActionScript中,颜色拾取器组件包含8种属性,如下所示。
●colors(:Array)该属性可用于定义或获取颜色拾取器中允许使用的所有颜色组成的数组。
在默认情况下,颜色拾取器的调色板只显示Web216色。
通过定义color属性,最多允许颜色拾取器的调色板显示1024种颜色。
例如,创建一个包含红、绿、蓝3色调色板的颜色拾取器,如下所示。
import fl.controls.ColorPicker;//导入颜色拾取器类var myCP:ColorPicker=new ColorPicker();//创建颜色拾取器myCPmyCP.colors=[0xFF0000,0x00FF00,0x0000FF];//定义颜色拾取器支持的颜色为红色、绿色和蓝色●editable(:Boolean)该属性用于定义或获取颜色拾取器中的文本内容是否允许编辑。
●enabled(:Boolean)该属性用于定义或获取颜色拾取器是否允许用户交互。
如将其属性值定义为true,则颜色拾取器允许浏览者使用颜色拾取器拾取颜色;如将其属性值定义为false,则颜色拾取该属性用于获取浏览者当前选定的颜色值。
获取的颜色值为字符串型16进制RGB颜色。
获取该属性必须调用ColorPickerEvent类的自定义函数。
●imeMode(:String)该属性用于获取或定义用户在选中颜色拾取器组件中的标签文本后的输入法模式。
该属性只有在enabled属性设置为true时可用。
Action Script 3.0 全局坐标与局部坐标
Action Script 3.0 全局坐标与局部坐标在Flash 中,制作的影片通常由很多对象的实例组成。
一些简单的对象实例往往嵌套在复杂的对象实例中以发挥作用。
在使用ActionScript 控制这些被嵌套在对象实例中的对象实例时,就需要考虑对象实例的全局坐标与局部坐标。
例如,一个Flash 导航条可以由2级对象实例构成,如图7-7所示。
图7-7 Flash 导航条动画在制作Flash 导航条动画的一级菜单对象实例menu1时,相当于将对象实例menu1添加到root 下。
在舞台(stage )中,root 的坐标原点位于舞台(stage )的左上角,该点坐标为(0,0)。
对象实例menu1相对于舞台(stage ),也有一个坐标,该坐标就被称做全局坐标。
对于root 而言,menu1在root 之下,所以menu1相对于root 也有一个坐标。
当root 的坐标改变时,menu1的坐标也会做出相应的改变。
但menu1相对于root 的距离并未改变。
menu1相对于root 的坐标就被称做局部坐标。
同理,对象实例menu1包含的子对象实例submenu1,相对于舞台(stage )有一个全局坐标,该对象实例对于menu1而言,也有一个局部坐标。
下面通过一个简单的实例来测试全局坐标与局部坐标的区别。
在Flash 影片中,插入一个火箭的图形,如图7-8所示。
图7-8 插入的火箭图形在用ActionScript 控制图形的位置时,首先应将其转换为元件,并将其实例化。
在转换元件过程中,可通过【转换为元件】对话框调整其注册点为居中,如图7-9所示。
图7-9 更改注册点在【时间轴】面板中新建图层AS,添加ActionScript代码,修改对象实例rocket的位置,如下所示。
rocket.x=100;//对象实例rocket的横坐标为100rocket.y=100;//对象实例rocket的纵坐标为100执行上面的代码,即可看到对象实例火箭的位置由影片中间改变为影片的左上角,如图7-10所示。
Action Script 3.0 鼠标事件
Action Script 3.0 鼠标事件鼠标事件是指与鼠标操作有关的事件。
例如,单击事件、双击事件、鼠标按下事件、鼠标滑出事件等。
鼠标事件都是由MouseEvent类来管理,MouseEvent类定义了与鼠标事件有关的属性、方法和事件。
MouseEvent类的属性如表6-10所示。
InteractiveObject显示对象可以提供响应用户鼠标行为的能力。
InteractiveObject的实例会针对鼠标的交互,分派必要的事件。
下面是几种比较常用的鼠标事件:●click 当用户在交互显示对象之上,按下或释放鼠标键时就会产生。
●doubleClick 当用户在交互显示对象之上,快速连续按下和释放鼠标键两次时就会产生。
●mouseDown 当用户在交互显示对象之上,按下鼠标键时就会产生。
●mouseUp 当用户在交互显示对象之上,释放鼠标键时就会产生。
●mouseOver 当用户从交互显示对象边界外,把鼠标指针移进边界内时就会产生。
●mouseMove 当指针位于交互显示对象边界内时,只要用户移动鼠标指针就会产生。
●mouseOut 当用户从交互显示对象边界内,把鼠标指针移出边界外时就会产生。
●mouseWheel 当鼠标指针位于交互显示对象之上时,只要用户滚动鼠标滚轮就会产生。
例如,创建一个名称为myRound的Sprite对象,在其内部绘制一个红色的圆形。
然后,当鼠标指针移动到该圆形之上时,该红色圆形被移除并在相同位置绘制一个蓝色的圆形,代码如下所示。
var myRound:Sprite= new Sprite(); //创建名称为myRound的Sprite对象myRound.graphics.beginFill(0xFF0000);myRound.graphics.drawCircle(100,100,100);myRound.graphics.endFill();//绘制红色圆形addChild(myRound); //将myRound实例加入到显示列表myRound.addEventListener(MouseEvent.MOUSE_OVER,mouseOver);//侦听鼠标指针经过myRound实例事件,并调用mouseOver()函数//创建mouseOver()函数,移除红色圆形并绘制蓝色圆形function mouseOver(event:MouseEvent):void{removeChild(myRound);myRound.graphics.beginFill(0x0000FF);myRound.graphics.drawCircle(100,100,100);myRound.graphics.endFill();addChild(myRound);}。
Action Script 3.0 调用函数
Action Script 3.0 调用函数通过使用后跟小括号(())的函数标识符可以调用函数,其中需要把传递给函数的任何参数都包含在小括号中。
调用函数的最常用形式为:函数名(参数)例如,使用小括号(())调用myMsg()函数,该函数会在【输出】面板中输出“这是无参函数”字符串,代码如下所示。
myMsg(); //调用myMsg()函数function myMsg():void{trace("这是无参函数。
");}用function关键字定义函数与调用函数的前后顺序无关,例如,使用下面的代码同样可以调用myMsg()函数。
function myMsg():void{trace("这是无参函数。
");}myMsg(); //调用myMsg()函数以上的函数只是实现了简单的功能,每调用一次函数输出的信息都是相同的。
所以,这样的函数在实际中并没有什么意义,函数的优点主要体现在代码的重复使用上。
例如,修改上面的代码如下所示。
function myMsg(msg:*):void{trace(msg);}myMsg("function函数"); //传递字符串类型数据myMsg(123456); //传递数字型数据myMsg(false); //传递布尔型数据此时的函数声明了一个参数,参数实际上就是变量,所以最好能声明参数的数据类型。
由于函数体内的trace()函数可以输出任意数据类型的数据,所以将参数的数据类型声明为“*”类型。
例如,为动画中的“播放”和“暂停”按钮创建两个函数:playMC()和pauseMC()函数。
动画的初始状态为显示“播放”按钮,当单击该按钮后调用playMC()函数,使“播放”按钮隐藏、“暂停”按钮显示,且动画开始播放;当单击“暂停”按钮后,效果则相反,代码如下所示。
stop(); //动画停止播放pauseBtn.visible = false; //“暂停”按钮的默认状态为隐藏playBtn.buttonMode = true;pauseBtn.buttonMode = true;playBtn.addEventListener(MouseEvent.CLICK,playMC);//处理单击“播放”按钮事件,调用playMC()函数function playMC(event:MouseEvent):void {this.play(); //播放动画playBtn.visible = false; //“播放”按钮隐藏pauseBtn.visible = true; //“暂停”按钮显示}pauseBtn.addEventListener(MouseEvent.CLICK,stopMC);//处理单击“暂停”按钮事件,调用stopMC()函数function stopMC(event:MouseEvent):void {this.stop(); //停止动画playBtn.visible = true; //“播放”按钮显示pauseBtn.visible = false; //“暂停”按钮隐藏}为“播放”按钮设置【实例名称】为“playBtn”,“暂停”按钮为“pauseBtn”。
Action Script 3.0 进度条组件
Action Script 3.0 进度条组件进度条组件ProgressBar的主要用途是显示某些内容的加载进度。
例如,图像、音频、视频以及Flash影片等。
进度条组件又可以分为两种,当加载已知容量的内容时,可使用确定的进度条,否则,可使用以条文填充的进度条,这种进度条将显示加载源为未知。
1.进度条组件对象的方法进度条组件除了继承组件对象的各种公共方法外,还有一些独有的对象方法。
这些方法用于控制进度条的各种状态,如下所示。
●getStyleDefinition ()进度条组件对象可以用TextFormat类创建的对象进行定义。
定义进度条组件的样式后,可使用getStyleDefinition()方法检索进度条的样式对象。
●reset()在进度条加载的过程中以及加载完成后,都可以使用reset()方法来重置进度条中的进度。
重置进度条中的进度后,可用进度条进行新的加载操作。
●setProgress()进度条的状态可由用户手动定制。
使用setProgress()方法可以定义进度条完成时的量以及进度条最大允许的量。
2.进度条组件对象的属性在ActionScript中,可以通过进度条组件的各种属性来定义进度条组件对象。
例如,定义进度条的方向、容量等,如下所示。
●direction(:String)ActionScript进度条组件的进度不仅可以自左向右运动,还可以相反的方向运动。
这就需要使用进度条组件对象的direction属性。
direction属性的值有两种,即该属性用于定义进度条的填充类型和加载源是否为已知,其值为Boolean型数据。
当时,定义进度条为条纹图案,加载源为未知;当其值为false时,定义进度条其值为true该属性用于定义当进度条的模式(ProgressBar.Mode)为ProgressBarMode.MANUAL 时,进度条的最大值。
●minimum(:Number)该属性用于定义当进度条的模式(ProgressBar.Mode)为ProgressBarMode.MANUAL 时,进度条的最小值。
Action Script 3.0 变量
Action Script 3.0 变量变量是指在程序运行时随时可能发生变化的数据。
ActionScript处理数据时,按照变量的名称访问内存单元中的数据,并对数据进行操作。
在一段ActionScript代码中,可以使用一个变量,也可以使用多个变量。
1.声明变量在程序中使用变量,必须先对变量进行声明。
例如,声明一个变量variable01,如下所示。
var variable01;//声明一个名称为variable01的变量在声明变量的同时,还应为变量中存储的数据关联数据类型。
虽然在声明变量时不指定变量的数据类型,程序代码依然可以运行,但这在严格模式下将产生编译器警告,并很容易出现种种错误。
例如,声明一个变量variable02,并将其关联为Number型数据,如下所示。
var variable02:Number;//声明一个名称为variable02的变量为Number型数据声明变量后,可为变量赋值,也可不为变量赋值。
如需要为变量赋值,应使用赋值运算符(=)。
例如,为String变量Variable03赋值为“Hello,World!”,如下所示。
var variable03:String="Hello,World!";//声明名称为variable03的String变量,并赋值为“Hello,World!”trace (variable03);//在屏幕中输出变量variable03的值变量可以是数据,也可以是一个类的实例。
声明一个类的实例,需要使用运算符“new”,如下所示。
var bitmap1:BitmapData=new BitmapData(100,200,false,0xffffffff);//声明类BitmapData的实例bitmap1。
小括号“()”中为类的参数在同一行中可以同时声明多个变量。
这些变量的数据类型可以相同,也可以不同。
声变量的"作用域"是指在代码执行过程中,该变量可被引用的区域。
Action Script的简单应用
小图片的形式从界 面的下部依次排列鱼贯 而出, 看者 可以通过 鼠 在第10 第 10 观 6 帧、 8帧插入关键帧 , 节第 10 调 8 帧元件 的大小为4 7× 1 标点 击选取 需要查看的照片 , 则被选择的照片就会放大 并放置在界 36 在第 1 1 0, 8 帧插入关键帧 , 并在 第1 1 5 帧到第 10 第1 1 6 帧、 6 帧到第 面 中 心位 置 。 再 次点 击 被 放 大 的 图片 , 图片 就 会 收 回 , 复 到 最 1 0 之 间创 建 补 问 动 画 。 当 该 恢 8帧 初的状态 , 到下次的选择 。 直 分 别 在 “ 片 ” 片 剪 辑 的 第 1 1 、04 、0 7 、0 10 10 照 影 、0 3 、06 、0 9 、 0 、2 、 下面是 制作可放大浏 览的艺术 照的制作方法 : 首先选择背景图片拖拽到 图层 1 1 将该 图层命名为“ 第 帧, 背景” 设置 舞台的尺 寸 , 与背景 图片尺寸相 同即6 0 c 0p , 0p X4 0 c并且定 位 背景 图的位置 为原点坐标 。 1 0 10 10 10 3 、5 、6 、 8 帧写入脚本so (; tp ) 分别设置“ 照片 ” 影片剪辑 的第 12 3 、16 、 19 、1 10 、 、0 3 、0 6 、0 9 、2 、
1 1 10 1 1 1 0 l 1帧内部的元件 对象的Alh 值为0 2 、5 、5 、8 、 8 pa 。 在第 1 帧的 “ 片按钮 1 ” 0 照 大 的按 钮元件上 插入 动作 脚本 o n
(ees){oo d ly 1 )} rlae g tAn P a (1; 在第4 帧的 “ 片按钮2 ” 0 照 大 的按钮 元件上插入 动作 脚本Ol i
1、 创 建 “ 图 ” 影 片 剪 辑 大
Action Script 初步
Action Script的应用
1. 动作脚本应用的对象:动作脚本可以应用于关键帧、按 钮和影片剪辑。 2. 添加了帧动作的关键帧会在时间轴上显示一个字母a。 3. 按钮动作主要用来处理与鼠标相关的事件,从而实现其 交互功能。
时间轴控制
gotoAndPlay:将播放头转到场景中指定的帧并开始播放。 gotoAndStop:将播放头转到场景中指定的帧并停止播放。 prevFrame: 将播放头转到前一帧并停止。 nextFrame: 将播放头转到下一帧并停止。 prevScene: 将播放头转到前一场景的第一帧并停止。 nextScene: 将播放头转到下一场景的第一帧并停止。 play:在播放头播放头当前的位置上继续播放。 stop:在播放头播放头当前的位置上停止播放。 stopAllSounds:在动画继续播放的情况下,停止影片的音乐。
停止、播放和跳转语句
play的功能:命令时间轴上的播放头从当前帧开始播放。 语法:play(); stop的功能:命令时间轴上的播放头停止在当前帧上。 语法: stop(); gotoAndPlay的功能:将播放头转到场景中指定的帧并开始播放。 语法: gotoAndPlay(场景名,帧编号); 同一场景的跳转可不填写场景名称。 gotoAndStop的功能:将播放头转到场景中指定的帧并停止播放。 语法: gotoAndStop(场景名,帧编号); 同一场景的跳转可不填写场景名称。
2. ActionScript 是一种面向对象的编程语言。 面向对象的编程,意思就是说所有的编程工作都是以 “对象”为中心的,程序中的每一段代码都位于某个对 象中。
Action Script的定义
3. 在不同的面向对象的编程语言中,“对象”这个词意
味着不同的东西,但凡是能够被称为对象的东西, 大 都具有一些共同的特征。比如,对象通常都具有属性 和方法。 4. 属性描述了对象的某个方面的特征,而方法使得对象可 以做某些事情。 5. 在ActionScript 中,“对象”指的就是某个影片剪辑 元件的实例、某个文本对象、某个按钮元件的实例等 等,而“事件”可以是某个按钮元件的实例被按下、 某个影片剪辑元件的实例的播放到达了某一帧等。
action_script3
on (release)sdfsdfsd{fscommand("quit"); // 加在按钮上面}on (release){gotoAndPlay(1); // 加在按钮上面}on (release){gotoAndPlay(4); //加在按钮上面}stop(); //加在action layer层里stop();on (release) {fscommand("fullscreen", "true"); //加在action layer层里第一帧上或是最大化按钮上}on (release) {fscommand("fullscreen", "false"); //加在action layer层里第一帧上是复原标准屏幕按钮上}gotoAndPlay(3); //加在action layer层里的最后一帧上或要重复的地方on (press){gotoAndStop(_currentframe + 1); // 加在按钮上面,一个画面加一条信息出来}on (press){gotoAndStop(_currentframe - 1); // 加在按钮上面,一个画面加一条信息出来}on (release){gotoAndStop(39); // 加在按钮上面一般是做一个画面然后跳过去的,也即是下一步按钮}停止:on(release){stop();}----------------播放:on(release){play();}小红旗是帧标签名称。
2个//是帧标签注释1个锚是帧标签锚记在图层上插入空白关键帧,再在属性面板的帧名称中键入你要添的文字就会在帧上出现文字了,这叫帧标签,小红旗表示是帧标签.Zhen d s hao wendang d ya。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、存放信息的容器,用来对所需的数据资料进行暂时的储存 2、在程序运行过程中,其值会发生变化的。 变量的定义(变量的命名/变量声明):
Var 变量名=初值; 或 变量名=初值;(局部变量)
例如:
var newdate=10;
例如:newdate=10; 例如:
var count: Number=10;
26
英语单词学习
visible可见度 root根目录 text文本 data数据 number数字 string一串,一 行,字符串 on在…之时 trace跟踪,追踪
program程序 Boolean布尔 true真 false假 field田野,域,字 段 function 功能; 作 用; 职责;函数;
布尔(Boolean)
9
任务三:ActionScript代码
5、运算符 :
与一般的编程语言相同,AS也使用运算符。 运算符是执行计算的特殊符号,它具有一个或多个操作数,并返 回相应的值。 常用运算符:
算术运算符+、-、*、 /、++、- - 、%(求模) 赋值运算符
=、+=、-=、*=、/=、%=
2、关键字(参见214页)
AS中用于执行一项特定操作的单词,不能用作标识符 例:Var关键字用于声明变量。(不能用作标识符例如:变量,函数或 标签名称)
3、常量
无法改变的固定的值,例如PI(Math.PI)
11
任务三: ActionScript基本语法
4、AS中的语法 :
点语法
用来指对象或影片剪辑的属性或方法,或指向一个影片剪辑或变量的目标路 径 例:如果要使MusiceMC影片剪辑播放。 _root.MusiceMC.play;
函数名=function (参数1,参数2,参数3,…) {语句}
23
任务四:ActionScript代码
8、函数 :
函数的调用
调用自定义函数,例如mininum=getmin(10,5); 调用系统自带函数,例如trace(“hello!”); 调用无参函数,例如stop();
24
本章总结
Flash动画设计与制作
第十三章 ActionScript动作编程 ——打造互动电影的利器
本章目标
认识ActionScript 掌握动作面板的使用 ActionScript基本语法学习 ActionScript基本语句学习
2
任务一:认识ActionScript
ActionScript动作脚本(我们这简称AS脚本):
认识ActionScript 掌握动作面板的使用 ActionScript代码的学习
25
计算机语言
计算机语言:
用于人与计算机之间通讯的语言
计算机程序设计语言的发展,经历了从机器语言、汇 编语言到高级语言(高级程序设计语言)的历程。 计算机语言主要分为四类:
低级语言(机器语言、汇编语言和符号语言 ) 高级语言(BASIC、C、C++等) 专用语言(CAD系统中的绘图语言和DBMS的数据库查询语言, 例如SQL语言。 ) 脚本语言(ActionScript、JavaScript、VBScript等)
19
任务四:ActionScript基本语句
AS中的基本语句 :
4、 while循环语句(当循环) while(条件){语句} 表示只要满足条件,就执行大括号中的语句;执行完后,再回去判断条 件,若满足,则又执行大括号中的语句;执行完再回去判断条件。。。 如此循环下去,直到不满足条件,才退出循环 例:var i:Number=5; 结果为:5 while(i>0){ 4 trace(i); 3 i--; 2 }
是Flash特有的编程语言,它在Flash内容和应用程序中
实现了交互性、数据处理以及其他许多功能 。 版本: ActionScript2.0(我们学习的版本) ActionScript3.0
3
任务二:动作面板的使用
窗口—动作(F9)
命令列表窗口 程序编辑窗口
目标列表窗口
4
任务二:动作面板的使用
如果不使用常量,直接在程序中填写数字或字符串,将会 有什么麻烦。
(1)程序的可读性变差。程序员自己会忘记那些数字或字符串是什么意 思。 (2)在程序的很多地方输入同样的数普遍或字符串,难保不发生书写错 误。 (3)如果要修改数据或字符串,则会在很多地方改动,既麻烦又容易出 错。
6
任务三: ActionScript编程基础
注意:
Action Script的一个特性就是模块化, 即可以把程序写成一个独立的模块,例如写Frame(帧)上、 Button(按钮)上、MovieClip(影片剪辑)上
5
任务三:ActionScript编程基础
1、常量与变量
常量:
程序运行过程中,值保持不变的量称常量 例如Math.PI(代表圆周率,表示为 pi,其近似值为 3.141592653589793 )等。
21
任务四:ActionScript基本语句
8、函数 :
为实现某个功能而设计的一个指令集合 函数一般具有返回值 通俗地讲,指定新的函数,把使用频繁的语句定义成一个新的函 数,当成一个公式或功能,以便反复套用。
22
任务四:ActionScript基本语句
8、函数 :
函数的定义
return语句用来从函数中返回值,return语 句会终止该函数,所以不会执行位于return 语句下的任何语句。
17
任务四:ActionScript基本语句
AS中的基本语句 :
2、switch语句: Switch(变量){ case A: 语句1 break; case B: 语句2 break; case C: 语句3 break; Default: 语句4 }
例:switch(i){
case 1: trace(“turn left!”); break; case 2: trace(“turn right!”); break; case 3: trace(“turn forword!”); break; Default: trace(“turn backword!”)
if(条件1){语句1} else if(条件2) {语句2} else {语句3}
表示如果满足条件1,则执行语句1; 否则判断是否满足条件2,如果满足 条件2,则执行语句2; 否则就执行语句3
16
任务四:ActionScript基本语句
例如,在下列语句中,判断影片剪辑实例ball的X 坐标,当X坐标小于等于200时,继续往前移动, 当大于200时,则返回0点。 if(ball._x<=200){ ball._x+=1;} else{ ball._x=0;}
27
Number函数
Number(expression) : Number Number(表达式) : Number 将参数 expression 转换为数字,并返回下面列表中说明 的值:
如果 expression 是数字,则返回值为 expression。 如果 expression 是布尔值,则当 expression 是 true 时,返回值 为 1;当 expression 是 false 时,返回值为 0。 如果 expression 为字符串,则该函数尝试将 expression 分析为 一个带有可选尾随指数的十进制数字(例如 1.57505e-3)。 其他
8、圆括号: () 9、注释:不执行(单行注释//,多行注释/*****里面写东西******/)
14
基本语句学习
15
任务四:ActionScript基本语句
AS中的基本语句 :
1、If条件判断语句 if(条件){语句1} if(条件1){语句1} else {语句2} 表示只要满足条件,就执行语句1, 否则就不执行 表示如果满足条件1,则执行语句1; 否则就执行语句2
比较(关系)运算符
>、>=、<、<= 可以确定两个操作数的值是否相等 返回的是一个Boolean值(false、true)
等于运算符= =、全等于= = =
10
任务四:ActionScript基本语法
1、区分大小写
变量的大小写稍有不同,就会视为彼此是不同的 例:var day:number=7; var Day:number=7;
或更严格 Var 变量名:数据类型=初值;
7
任务三: ActionScript编程基础
3、变量 :
变量命名规则—— 以英文字母a~z开头 除开头字母外,其它可以是数字、字母、下划线_、美元符号, 不能有空格 不能与AS中使用的命令名称相同(即关键字相同) 变量在其作用域内必须是唯一的 Ex: var 123name=1; Zhang san You&me for
绝对路径
从根目录开始写,根目录用_root表示 从影片剪辑本身开始写,即相对于影片剪辑本身来写的 用this表示影片剪辑本身,可省略不写 _parent表示返回上一级目录
相对路径
ቤተ መጻሕፍቲ ባይዱ12
任务三: ActionScript基本语法