1、第15章 Action脚本,第15章 Action脚本,15.1 Action脚本简介 15.2 Action数据类型 15.3 变量和表达式 15.4 语法结构 15.5 常用内置对象及属性15.6 Action程序分析 15.7 本章小结,本章重点要学习Action语法和掌握基本按钮、影片剪辑元件的事件、和函数处理,理解对象的概念和熟悉点语法的使用。,15.1 Action脚本简介,ActionScript 是用来向 Flash 应用程序添加交互性的语言,此类应用程序可以是简单的 SWF 动画文件,也可以是更复杂的功能丰富的 Internet 应用程序。用户不必使用 ActionScrip
2、t 就可以使用 Flash,但是,如果要提供基本或复杂的与用户的交互性、使用除内置于 Flash 中的对象之外的其它对象(例如按钮和影片剪辑)则可能需要使用 ActionScript。,ActionScript与JavaScript核心编程语言很相似,同样具有函数、变量、语句、操作符、条件和循环等基本的编程概念。且语法格式一致。学习脚本需要有一定的编程基础并已经对面向对象编程具有一定的了解用户。,15.1 Action脚本简介,ActionScript 2.0包括以下主要功能:(1)熟悉的面向对象编程 (OOP) 模型 ActionScript 2.0 的主要功能是一个大家熟悉的用于创建面向对
3、象程序的模型。ActionScript 2.0 中实现了几个面向对象的概念和关键字,例如,类、接口和包。ActionScript 2.0 提供的 OOP 模型是以前的 Macromedia Flash 版本中用于创建对象和建立继承的原型链方法的“句法定式“。使用 ActionScript 2.0,可以创建自定义类和扩展 Flash 的内置类。,15.1 Action脚本简介,(2)严格数据类型指定 ActionScript 2.0 还允许用户为变量、函数参数和函数返回类型显式指定数据类型。例如,下面的代码声明一个名为 userName、类型为 String 的变量,String 是一种内置的
4、ActionScript 数据类型(即类)。 var userName:String = “;,15.1 Action脚本简介,(3)编译器警告和错误 以上两种功能(OOP 模型和严格数据类型指定)使创作工具和编译器能够提供编译器警告和错误消息,帮助您用比以往 Flash 中更快的速度找出应用程序中的错误。,15.1 Action脚本简介,数据类型说明: 1.BooleanBoolean 数据类型包括两个值:true 和 false。对于此类变量,其它任何值都是无效的。已经声明但尚未初始化的布尔变量的默认值是 false。 2.MovieClipMovieClip 数据类型允许您使用 Movi
5、eClip 类的方法控制影片剪辑元件。,15.2 Action数据类型,3.NullNull 数据类型包含一个值,即 null。此值意味着“没有值“,即没有数据。在很多种情况下,可以指定 null 值,以指示某个属性或变量尚未赋值。null 数据类型是所有定义复杂数据类型的类的默认数据类型。此规则的例外情况是 Object 类,其默认值为 undefined。 4. Number此数据类型可以表示整数、无符号整数和浮点数。若要存储浮点数,数字中应该包括一个小数点。若没有小数点,数字将被存储为整数。Number 数据类型可以存储从 Number.MAX_VALUE (最大值)到 Number.M
6、IN_VALUE(最小值)之间的值。,15.2 Action数据类型,5.ObjectObject 数据类型是由 Object 类定义的。在 ActionScript 中,Object 类可用作所有类定义的基类,它可以使对象包含对象(嵌套对象)。 6.StringString 数据类型表示 16 位字符的序列,可能包括字母、数字和标点符号。字符串存储为 Unicode 字符,使用 UTF-16 格式。对字符串值的操作返回字符串的一个新的实例。,15.2 Action数据类型,7. UndefinedUndefined 数据类型包含一个值:undefined。这是 Object 类实例的默认值。
7、只能为属于 Object 类的变量指定 undefined 这一值。 8. VoidVoid 数据类型仅包含一个值:void。可以对不返回值的函数指定此数据类型。Void 是一个复杂数据类型,它引用原始 Void 数据类型。,15.2 Action数据类型,对数据类型的赋值:字符串:favoriteBand = “L7“;数值: num=123;逻辑:m_bool=true;对象:m_object=new object();影片剪辑:m_movieclip.Play();,15.2 Action数据类型,15.2.2 字符串(string)字符串是诸如字母、数字和标点符号等字符的序列。在 Ac
8、tionScript 语句中输入字符串的方式是将其放在单引号 () 或双引号 (“) 之间。例如:favoriteBand = “L7“; 可以用加号()操作符连接两个字符串。 例如: greeting = “Welcome,“ + firstName;,15.2 Action数据类型,15.2.2 字符串(string)尽管ActionScript对变量、实例名和帧标签的引用不区分大小写,但字符串是区分大小写的。 例如,下面的两个语句把不同的文本放入指定的文本域变量中,因为“Hello” 和 “HELLO” 是字符串。 invoice.display = “Hello“; invoice.d
9、isplay = “HELLO“;,15.2 Action数据类型,15.2.2 字符串(string)在ActionScript中,还有一些其它的字符需要使用特殊转义序列来表示。例如: b 退格符(ASCII 8) f 换页符(ASCII 12) n 换行符(ASCII 10) r 回车符(ASCII 13) t 制表符(ASCII 9) “ 双引号 单引号 反斜杠 000 - 377 八进制字节 x00 - xFF 十六进制字节 u0000 - uFFFF 十六进制双字节编码字符,15.2 Action数据类型,15.2.3 数值型数据(number)数值数据类型是一个双精度浮点数。可用数
10、学运算符加(+)、减(-)、乘(*)、除(、)、取模(%)、递增(+)、递减(-)处理数值。也可以使用预定义的Math(数学)对象的方法来处理数值。 例如: i+; Math.sqrt(100);,15.2 Action数据类型,15.2.4 逻辑值(Boolean)逻辑值是true(真)或false(假)。需要时,ActionScript 也把true和false转换为1和0。 逻辑值与逻辑操作符一起,常常被用在控制脚本流动的比较语句中。,15.2 Action数据类型,15.2.4 逻辑值(Boolean)例如,在下面的脚本中,如果password的值为true,动画播放: onClipE
11、vent(enterFrame) if (userName = true) ,15.2 Action数据类型,15.2.5 对象(Object)对象是属性的集合。每个属性都有名字和值。属性值可以是任何Flash数据类型,甚至可以是对象数据类型。这样就可以把一个对象嵌套在另一个对象之中。要指定对象和它们的属性,可以使用点操作符。 例如:hoursWorked是weeklyStats的属性,而weeklyStats又是employee的属性。employee.weeklyStats.hoursWorked,15.2 Action数据类型,15.2.6 影片剪辑(MovieClip)电影剪辑是一种图
12、符,这种图符可以在Flash动画中播放一个动画片段。它是与图像元素有关的唯一一种数据类型。,15.2 Action数据类型,15.2.6 影片剪辑(MovieClip) 例如:电影剪辑对象实例:myclip myClip.startDrag(true);/设置允许拖动影片剪辑myClip parentClip.childClip.getURL( “http:/www.M + product); /控制影片剪辑/ “parentClip”中的子影片剪辑“childClip” /进行超链接的重定向到新的网页。,15.2 Action数据类型,15.3.1 命名变量给变量命名必须遵守以下规则: 变量
13、名必须是一个标识符。 变量名不能是一个关键字或逻辑常量(true 或false)。 变量名在它的作用范围内必须是唯一的(参阅变量的作用范围)。,15.3 变量和表达式,15.3.1 命名变量在调试脚本时确定表达式或变量的数据类型,对了解它们在动画播放时起什么作用是很有用的。使用typeof 操作符可以确定表达式或变量的类型。 如下例所示: trace(typeof(variableName);,15.3 变量和表达式,15.3.2 变量的作用范围变量的作用范围是指能够识别和引用该变量的区域。在ActionScript中,变量可以是全局的和局部的(或称本地的)。全局变量可以在所有时间轴中共享;局
14、部变量仅在它所在的代码块(大括号之间)中有效。测试变量的值,可以使用trace动作把变量的值传送到输出窗口。,15.3 变量和表达式,15.3.2 变量的作用范围 1可以在脚本中用var语句声明一个局部变量 例如,变量i和 j常常被用作循环计数器。在下面的例子中,i被用作局部变量,它仅存在于函数 makeDays内部:,15.3 变量和表达式,function makeDays()var ifor( i = 0; i monthArraymonth; i+ ) _root.Days.attachMovie( “DayDisplay“, i, i + 2000 );_root.Days.num
15、= i + 1;_root.Days._x = column * _root.Days._width;_root.Days._y = row * _root.Days._height;column = column + 1;if (column = 7 ) column = 0;row = row + 1; ,15.3 变量和表达式,15.3.2 变量的作用范围 2使用_global可声明全局作用域的变量 例如: var _global.myName = “George”; / 全局变量的错误语法 _global.myName = “George“; / 全局变量的正确语法,15.3 变量和表
16、达式,15.3.2 变量的作用范围 3使用set动作或赋值操作符 (=) 可以对对象的属性赋值 例如: on(release) set (orig_x_pos, getProperty (“ship“, _x ); 或者: on(release) orig_x_pos = ship._x; /_x为影片剪辑所在X轴位置若想在变量声明的时候确定其类型则可以使用“:类型“格式。 例如: var mystring : String =”hello”;,15.3 变量和表达式,15.3.3变量的传递 1传值传递的内容是变量的值。 例如: var x = 15;var y = x;var x = 30;
17、 最终 x=30,y=15.,15.3 变量和表达式,15.3.3 变量的传递 2传地址传递的内容是变量的地址引用。 var myArray = “tom“, “dick“; var newArray = myArray; myArray1 = “jack“; trace(newArray);,15.3 变量和表达式,15.3.3 变量的传递 程序解释:上面的代码创建一个数组对象,称为 myArray,它有两个元素。var newArray = myArray语句建立了变量newArray和对myArray的引用。当语句myArray1 = “jack”改变了myArray数组的第二个元素的值
18、时,引用该元素的所有变量的值都会跟着改变。trace动作将把“tom“, “jack“而不是“tom“, “dick“传送到输出窗口。,15.3 变量和表达式,15.3.4 操作符 1数值操作符,15.3 变量和表达式,15.3.4 操作符 2比较操作符,15.3 变量和表达式,15.3.4 操作符 3逻辑操作符,15.3 变量和表达式,15.3.4 操作符 4位操作符,15.3 变量和表达式,15.3.4 操作符 5赋值操作符,15.3 变量和表达式,15.4.1 条件分支语句 1if.else. 例如: if(name = “Erica“) play(); else stop(); ,15
19、.4 语法结构,当条件为真时,执行else语句之前的语句块,否则执行else语句块。 若分支语句仅有一条语句则相应的可以省略。,15.4.1 条件分支语句 2switch.case 例如: switch (number) case 1:trace (“case 1 tested true“);break;case 2:trace (“case 2 tested true“);break;case 3:trace (“case 3 tested true“);break;default:trace (“no case tested true“) ,通过switch块中的变量number与case
20、块中的值比较来确定执行的分支语句,break语句负责禁止程序在执行一个语句块后又顺序的执行下一个case语句的内容。,15.4 语法结构,15.4.2 循环语句 1while(条件)语句 while中的条件信息若为真,则进入循环执行,否则挑出循环。,on(release) foo = 0;while(foo 5) duplicateMovieClip(“_root.flower“, “mc“ + foo, foo); setProperty(“mc“ + foo, _x, random(275); setProperty(“mc“ + foo, _y, random(275); setProp
21、erty(“mc“ + foo, _alpha, random(275); setProperty(“mc“ + foo, _xscale, random(200); setProperty(“mc“ + foo, _yscale, random(200); foo+; ,15.4 语法结构,15.4.2 循环语句上例中当释放鼠标时自动复制影片剪辑flower,并对新的影片剪辑实例进行属性的设置,当foo+为5时停止循环退出。 2dowhile(条件)首先执行do语句块的程序,再判断while中的条件是否为真,为真则继续循环,否则跳出循环。它与while语句的区别就在于:无论如何都必须执行一次
22、do的语句块。,15.4 语法结构,例如上例被改写为: on(release) foo = 0;doduplicateMovieClip(“_root.flower“, “mc“ + foo, foo);setProperty(“mc“ + foo, _x, random(275);setProperty(“mc“ + foo, _y, random(275);setProperty(“mc“ + foo, _alpha, random(275);setProperty(“mc“ + foo, _xscale, random(200);setProperty(“mc“ + foo, _ysca
23、le, random(200);foo+; while(foo 5) ,15.4 语法结构,3for(初始条件;判断条件;控制语句)首先使用初始条件与判断条件进行判断,若为假跳出循环,若为真则进行循环语句的执行,循环后由控制语句进行控制对初始变量值的修改,再次与判断条件进行判断,为真则继续循环,为假跳出循环。,15.4 语法结构,例如: for(i=0; i10; i+) array i = (i + 5)*10;trace(arrayi); ,程序中的变量i=10时判断条件为假不能循环,由初始值的0,经控制语句每次累加到10时停止循环。,15.4 语法结构,4for(个体对象 in 对象集合
24、中)每次从集合对象中取出一个对象作为循环对象进行操作,直到整个集合对象中的所有对象全部被遍历后停止循环。,例如: myObject = name:Tara, age:27, city:San Francisco ; /创建一个Object对象变量,包括3个属性:name,age,city。 for (name in myObject) trace (“myObject.“ + name + “ = “ + myObjectname);/ 循环依次输出对象的属性的名称和值。 ,15.4 语法结构,Flash的快捷帮助可以通过“动作”面板来选择某一个方法或属性,然后鼠标右击选择“查看帮助”来激活某
25、个方法的帮助文档,效果如图所示。,15.5 常用内置对象及属性,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,1_alpha 功能:设置或获取由 MovieClip 指定的影片剪辑的 Alpha 透明度 (value)。有效值为 0(完全透明)到 100(完全不透明)。 例如:在某个按钮上控制影片剪辑实例star的透明度: on(release) star._alpha = 30; /释放按钮后,影片剪辑实例star的透明度被修改为30,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,2_currentframe 功能:返回由 MovieClip 指定的时间轴中播放头
26、所处的帧的编号。 例如:下面的示例使用 _currentframe 属性指示影片剪辑 actionClip 的播放头从当前位置前进 5 帧。 actionClip.gotoAndStop(_currentframe + 5); /gotoandstop()将当前播放头转到某帧停止,15.5 常用内置对象及属性,3_framesloaded 功能: 属性(只读);从影片流中已经加载的帧数。 下面的实例使用 _framesloaded 属性在所有帧都已加载后开始播放影片。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,如果未加载完所有帧,则会等比例增大影片剪辑实例 loader 的
27、_xscale 属性以创建进度栏。 if (_framesloaded = _totalframes) /_totalframes指示影片的所有帧。 gotoAndPlay (“Scene 1”, “start“); /gotoandplay()转到场景的某帧处播放else _root.loader._xscale = (_framesloaded/_totalframes)*100); 此例代码就是网络中加载影片时的进度条效果。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,4_height, _width 功能:以像素为单位设置和获取影片剪辑的高度、宽度。 例如: oncli
28、pEvent(mouseDown) _width=200; _height=200; /当鼠标在影片剪辑中按下时将影片剪辑的宽度 /和高度修改为200象素。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,5_name 功能:返回由 MovieClip 指定的影片剪辑的实例名称。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,6 _totalframes 功能:返回 MovieClip 参数中指定的影片剪辑实例中的总帧数。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,7 _visible 功能:一个布尔值,指示由 MovieClip 参数指定的影片是否
29、可见。不可见的影片剪辑(_visible 属性设置为 false)处于禁用状态。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,8 _x,_y 功能:属性;设置影片剪辑 x,y 坐标的位置,该坐标相对于父级影片剪辑的本地坐标。如果影片剪辑在主时间轴中,则其坐标系统将舞台的左上角作为 (0, 0)。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,9 _xmouse, _ymouse 功能:返回鼠标位置的 x,y 坐标。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,10 _xscale, _yscale 功能:设置从影片剪辑注册点开始应用的该影片剪辑的水
30、平、垂直缩放比例 (percentage)。默认注册点为 (0,0)。,15.5 常用内置对象及属性,15.5.1 影片剪辑的属性,15.5.2 影片的控制方法,1gotoAndPlay(scene, frame)/gotoAndStop(scene, frame) 参数: scene:播放头将转到的场景的名称。 Frame:播放头将转到的帧的编号或标签。 功能:将播放头转到场景中指定的帧并从该帧开始播放/停止。 如果未指定场景,则播放头将转到当前场景中的指定帧。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,例如:当用户点击 gotoAndPlay 动作所分配到的按钮时,播放头
31、将转到第 16 帧并开始播放 。 on(release) gotoAndPlay(16); ,15.5 常用内置对象及属性,2 nextFrame()/prevFrame() 功能:将播放头移到下一帧/上一帧并停止。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,3nextScene()/prevScene () 功能:将播放头移到下一场景/上一场景的第一帧并停止。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,4play()/stop() 功能:播放/停止影片。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,5. stopAllSounds() 功能
32、:在不停止播放头的情况下停止影片中当前正在播放的所有声音。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,6on(mouseEvent) statement(s); 功能:事件处理函数;指定触发动作的鼠标事件或者按键事件。 可处理的事件如:press 在鼠标指针经过按钮时按下鼠标按钮。 release 在鼠标指针经过按钮时释放鼠标按钮。releaseOutside 当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,rollOut 鼠标指针滑出按钮区域。rollOver 鼠标指针滑过按钮。 dr
33、agOut 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域。 dragOver 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。 keyPress (“key”) 按下指定的 key。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,7setProperty(“target“,property,value/expression) 参数: target:到要设置其属性的影片剪辑实例名称的路径。 property:要设置的属性。 value:属性的新文本值。 expression:计算结果为属性新值的公式。 功能:当影片播放时,更改影片剪辑的属性值。,15.5 常
34、用内置对象及属性,15.5.2 影片的控制方法,例如:影片剪辑的“属性”检查器,当单击按钮时,此语句将名为 star 的影片剪辑的 _alpha 属性设置为 30%: on(release) setProperty(“star“, _alpha, “30“); ,15.5 常用内置对象及属性,15.5.2 影片的控制方法,8duplicateMovieClip(target, newname,depth) 参数: target:要复制的影片剪辑的目标路径。 newname:复制的影片剪辑的唯一标识符。 depth:复制的影片剪辑的唯一深度级别。深度级别是复制的影片剪辑的堆叠顺序。,15.5 常
35、用内置对象及属性,15.5.2 影片的控制方法,这种堆叠顺序很像时间轴中图层的堆叠顺序;较低深度级别的影片剪辑隐藏在较高堆叠顺序的剪辑之下。必须为每个复制的影片剪辑分配一个唯一的深度级别,以防止它替换现有深度上的影片。 功能:当影片正在播放时,创建一个影片剪辑的实例。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,例如:复制影片剪辑实例 flower 十次。变量 i 用于为每个复制的影片剪辑创建新实例名和唯一的深度。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,on (release) amount = 10; while (amount0) duplicateM
36、ovieClip (_root.flower, “mc“+i, i); setProperty (“mc“+i, _x, random(275); setProperty (“mc“+i, _y, random(275); setProperty (“mc“+i, _alpha, random(275); setProperty (“mc“+i, _xscale, random(50);setProperty (“mc“+i, _yscale, random(50); i+; amount-; ,15.5 常用内置对象及属性,15.5.2 影片的控制方法,9removeMovieClip(ta
37、rget) 参数:target用 duplicateMovieClip 创建的影片剪辑实例的目标路径,或者用 MovieClip 对象的 attachMovie 或 duplicateMovieClip 方法创建的影片剪辑的实例名。 功能:删除影片剪辑。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,10onClipEvent(movieEvent)statement(s); 参数:movieEvent的取值:load 影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。 unload 在从时间轴中删除影片剪辑之后,此动作在第一帧中启动。enterFrame 以影片帧频不断地触
38、发此动作。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,movieEvent的取值:load 影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。unload 在从时间轴中删除影片剪辑之后,此动作在第一帧中启动。enterFrame 以影片帧频不断地触发此动作。首先处理与 enterFrame 剪辑事件关联的动作,然后才处理附加到受影响帧的 所有帧动作脚本。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,mouseMove 每次移动鼠标时启动此动作。 _xmouse 和 _ymouse 属性用于确定当前鼠标位置。 mouseDown 当按下鼠标左键时启动此动作。
39、 mouseUp 当释放鼠标左键时启动此动作。 keyDown 当按下某个键时启动此动作。使用 Key.getCode 方法获取最近按下的键keyUp 当释放某个键时启动此动作。使用 Key.getCode 方法获取最近按下的键,15.5 常用内置对象及属性,15.5.2 影片的控制方法,功能:处理影片剪辑的事件。 例如: onClipEvent(keyDown) if (Key.getCode() = Key.RIGHT) /key.getCode():获取按下键盘按键的信息, /此处判断是否按下键盘右方向键Key.RIGHT _parent.nextFrame(); else if (Ke
40、y.getCode() = Key.LEFT) /Key.LEFT:指左方向键的键值 _parent.prevFrame(); ,15.5 常用内置对象及属性,15.5.2 影片的控制方法,程序说明:当在影片剪辑中按下按键后,执行此影片剪辑事件,若按下时键盘的右方向键则父影片剪辑播放下一帧,若按下的是左方向键则播放上一帧。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,再如实例2:将 onClipEvent 与 mouseMove 影片事件一起使用。_xmouse 和 _ymouse 属性跟踪每次鼠标移动时的鼠标位置。 onClipEvent(mouseMove) stage._
41、X=_root.xmouse; stage._Y=_root.ymouse; 程序执行后影片剪辑实例stage 一直跟着鼠标走。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,11startDrag(target,lock ,left , top , right, bottom) 参数: target:要拖动的影片剪辑的目标路径。 lock:一个布尔值,指定可拖动影片剪辑是锁定到鼠标位置中央 (true),还是锁定到用户首次点击该影片剪辑的位置上 (false)。 left、top、right、bottom:相对于影片剪辑父级坐标的值,这些坐标指定该影片剪辑的约束矩形。这些参数是
42、可选的。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,功能:使 target 影片剪辑在影片播放过程中可拖动。一次只能拖动一个影片剪辑。执行 startDrag 动作后,影片剪辑将保持可拖动状态,直到被 stopDrag 动作明确停止为止,或者直到为其他影片剪辑调用了 startDrag 动作为止。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,12 stopDrag() 功能:停止拖动影片剪辑。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,例如: on(press) startDrag(“mc“); on(release) stopdrag();
43、 程序说明:鼠标按下时将拖动影片剪辑mc,直到鼠标释放才停止拖动。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,13getURL(url , window , “variables“) 参数: url:可从该处获取文档的 URL。 window:一个可选参数,指定文档应加载到其中的窗口或 HTML 框架。可选值: _self 指定当前窗口中的当前框架。 _blank 指定一个新窗口。 _parent 指定当前框架的父级。 _top 指定当前窗口中的顶级框架。 variables 用于发送变量,15.5 常用内置对象及属性,15.5.2 影片的控制方法,功能:打开超链接,执行此函
44、数后将打开指定的网页链接。 例如: on(release) getURL(“http:/, “_blank“); 上面代码一般添加到按钮的动作中,则点击按钮后打开新浪网的首页。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,14loadMovie(“url“, target,Method) 参数: url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL。 target:指向目标影片剪辑的路径。 Method:一个可选参数,指定发送变量所使用的 HTTP 方法。该参数须是字符串 GET 或 POST。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,功能:
45、在播放原始影片的同时将 SWF 或 JPEG 文件加载到 Flash Player 中。 on(release) loadMovie(“products.swf“,_root.dropZone); 程序解释:当释放按钮后将外部的products.swf文件加载到影片场景中的实例名称为dropZone的影片剪辑中。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,15unLoadMovie(target) 参数: target:指向目标影片剪辑的路径。 功能: 卸载由LoadMovie()方法加载的swf、jpeg文件。 on(release) unloadMovie(_root.d
46、ropZone); ,15.5 常用内置对象及属性,15.5.2 影片的控制方法,16 LoadMovieNum(“url“, level ,Method) 参数: url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL。 level:加载影片的级别 (_levelN)。 Method:一个可选参数,指定发送变量所使用的 HTTP 方法。该参数须是字符串 GET 或 POST。 功能:在播放原始 SWF 文件时,将 SWF、JPEG、GIF 或 PNG 文件加载到一个级别中。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,17、unloadMovieNum(leve
47、l) 参数: Level:加载影片的级别 (_levelN)。 功能: 卸载之前加载的影片。,15.5 常用内置对象及属性,15.5.2 影片的控制方法,下面的实例卸载主时间轴上的影片剪辑 draggable,并将影片 movie.swf 加载到级别 4 中。 on (press) unloadMovie (“_root.draggable“); loadMovieNum (“movie.swf“, 4); 下面的示例卸载已经加载到级别 4 中的影片: on (press) unloadMovieNum (4); ,15.5 常用内置对象及属性,15.5.2 影片的控制方法,15.6.1 鼠标
48、跟随,15.6 Action程序分析,制作步骤:(1)新建Flash文档,背景设为“白色”。(2)使用文本工具 在场景1的第一帧处输入“跟着鼠标运动”六个字。(3)用选择工具 ,选中输入的文字,键入“ctrl+B”将六个字分解为单个字。(4)将“跟”字转换为“影片剪辑”元件,并将“跟”字的实例名称设为“char1”。如图所示。,15.6.1 鼠标跟随,15.6 Action程序分析,(5)重复过程4,将另外几个字的实例名称依次设为“char2”、“char3” 、“char4” 、“char5” 、“char6”。,(6)新建一个“影片剪辑”元件,命名为“a”,编辑元件“a”,在第一帧处添加如
49、下代码: var i=6; while(Number(i)1) set(“_root.char“+i+“._x“,eval(“_root.char“ +(i-1) + “._x“)+30);set(“_root.char“+i+“._y“,eval(“_root.char“ +(i-1) + “._y“);i=i-1; _root.char1._x= _root._xmouse+20; _root.char1._y= _root._ymouse; i= 6; while(Number(i)=1)setProperty(“char“ + i, _x, eval(“char“ + i + “._x“);setProperty(“char“ + i, _y, eval(“char“ + i + “._y“);i=i-1; ,