您好,欢迎访问三七文档
FlashAS入门教程本文档前面大半截都在讲一些基础,如果大家觉得太啰嗦或者是已经掌握到这些内容了,可以直接跳过看最后的例子。有任何问题请联系我,谢谢~Flash,中文字义是“闪”的意思,因此,做Flash相关工作的及Flash爱好者通常被称之为“闪客”。从1996年的FutureSplashAnimator(flash1)发售到现在的FlashCS3,flash一共发布了9个正式的版本。从flash4开始flash加入了编程的功能,到Flash5里编程功能得到了完善(即是As1.0),到FlashMX2004的As2.0、现在最新FlashCS3的As3.0,ActionScript这个当初命名为动作脚本语言的Flash自带的程序语言在这些年间不断的壮大和完善,特别是最新的As3,已经达到和常规的如C++、Java等计算机语言能相提并论的地步了。Flash常规元件共有三种:即图形元件(Picture)、按钮元件(Button)和影片剪辑元件(MovieClip通常简写为mc)图形元件可用于静态图像,并可用来创建连接到主时间轴的可重用动画片段。图形元件与主时间轴同步运行。交互式控件和声音在图形元件的动画序列中不起作用。由于没有时间轴,在舞台上也没有实例名,图形元件在FLA文件中的尺寸小于按钮或影片剪辑,它在舞台上能够播放的帧数取决于它在时间轴里出现的帧数。个人的感觉好象是美工gg或mm都挺喜欢图形元件的(比方说李MM),因为图形元件可以在工作界面里很方便的预览,而as程序员则基本是清一色的用mc。说实话我从未用过图形元件。^_^使用按钮元件可以创建用于响应鼠标单击、滑过或其它动作的交互式按钮。可以定义与各种按钮状态关联的图形,然后将动作指定给按钮实例。按钮一共有四帧:分别是普通、鼠标经过、点击和点击热区四个相对应的状态。使用影片剪辑元件(可以创建可重用的动画片段。影片剪辑拥有各自独立于主时间轴的多帧时间轴,而且在舞台上拥有自己的实例名。您可以将多帧时间轴看作是嵌套在主时间轴内,它们可以包含交互式控件、声音甚至其它影片剪辑实例。当影片剪辑出现在舞台上,哪怕是它所在的时间轴的帧只有一帧,它仍然可以把自己内部的动画完全播完,这和图形元件非常的不同。举个区别mc和picture的例子:(图1)舞台上有一个元件,它的本身有一段10帧的补间动画:(图2)如果舞台上这个元件是picture的话,生成的文件只能看到这个元件的第一帧,如果这个元件是mc的话你可以看到它自身的补间动画。Flash的常用名词:舞台(Stage):台是您在创建Flash文档时放置图形内容的矩形区域。帧(Frame):帧共分为三种即关键帧、空白关键帧和普通帧(一般帧)帧率:即一秒内flash播放的帧数,通常更高的帧数会让flash显得更多加自然,当然代价也是使文件大小倍增(特别是逐帧动画),flash默认的12帧基本上是刚刚骗过人的眼睛,一个好的动画通常帧数也是比较足的。做游戏特别是动作游戏,至少也得24帧以上才基本过得去,好的游戏通常是要求30或45帧甚至60帧。关键帧:帧上面有实际内容的帧就是关键帧,只要有任何的东西在(哪怕是一个空白的mc),都会显示为关键帧空白关键帧:顾名思义当然是没有内容的关键帧了普通帧:普通帧不同于关键帧的地方在于普通帧显示的内容完全取决于它前面的关键帧的内容,普通帧不能独立的存在于一个单独的层上。图层:图层可以帮助您组织文档中的插图。可以在图层上绘制和编辑对象,而不会影响其它图层上的对象。在图层上没有内容的舞台区域中,可以透过该图层看到下面的图层。需要说明一下的是图层和mc的深度息息相关的。越上面的图层所在的元件的深度也越高,不过在ActionScript里可以用语句动态的调整各元件之间的层级关系,请注意。时间轴:时间轴用于组织和控制一定时间内的图层和帧中的文档内容。与胶片一样,Flash文档也将时长分为帧。图层就像堆叠在一起的多张幻灯胶片一样,每个图层都包含一个显示在舞台中的不同图像。时间轴的主要组件是图层、帧和播放头。点语法:在ActionScript中,应使用点(.)运算符(点语法)访问属于舞台上的对象或实例的属性或方法。您还可以使用点运算符来确定实例(例如影片剪辑)、变量、函数或对象的目标路径。点语法表达式以对象或影片剪辑的名称开头,后面跟着一个点,最后以要指定的元素结尾。路径:路径分两种:一是绝对路径二是相对路径。说这个之前先说几个flash里常用的关键字:this(当前)、_parent(父系)、_root(主时间轴,根轴。不管你的flash有多么的复杂,主时间轴只有一个,不过由于有时会将整个一个swf作为别一个swf元件载入,所以被加载的swf的主时间轴也会发生变化,因此个人不太建议用_root。在as3中,它已被Adobe删除,并且没有替代者。)绝对路径:相对好理解一些,也是初心者和菜鸟们最喜欢的为数不多的flash关键词之一。比方说主时间轴里有一个mc叫a,而另一个同在主时间轴上的影片剪辑b里有一个影片剪辑叫c的可以用绝对路径一下子就访问到a:_root.a,不管发起访问的对象是谁,只要用_root.a就一定可以访问到影片剪辑a,因为主时间轴只有一个,而不用考虑自己所处在的位置。Ps:如果在代码中使用_root,在将SWF文件加载到另一个Flash文档中时可能会遇到错误。在将SWF文件加载到一个不同的SWF文件中时,加载的文件中的_root可能指向该文件加载到的SWF文件的根范围,而不是像您所期望的那样指向它自已的根。这可能会导致不可预料的结果,也可能会导致完全无法运行。相对路径:以当前为出发点,对其他对象访问的方式。还是舞台上还一个例子摆放方式:当b里的c要访问主时间轴上的a的时候应该这么写:this._parent._parent.a如果a要访问c的话应该这么写this._parent.b.c相对路径相对要复杂和麻烦一点,但很灵活,不过对于初学者来说要理清这个关系是有些头大的(习惯了就好)。AS基础做过Flash动画的Flash爱好者们都知道,要做好一个Flash动画,AS是必不可少的,即使只是很简单的几句代码也能起到整个Flash画龙点睛的作用。这里我只简单的介绍一下AS的基本常识,更多多更详细的东西请参阅flash的自带的帮助,没有安装Flash的同学可以在\\172.31.14.190\网站服务器03\网站服务器01\制作部资料站\学习资源\Flashas3帮助文件里找到中文版的CHM格式的flash帮助文件(学flash不安装flash?^_^!)。变量的声明:可以在时间轴中的帧上声明变量,直接在对象上声明,或在一个外部类文件中声明。应使用var关键字定义变量并遵守变量命名约定。可以声明一个名为n的变量,如下例中所示:varn:Number;n=10;其中var是声明变量的关键字,除了声明全局变量以外所有的变量都用这个关键字声明,as2对变量的声明要求不是特别严格,没有声明的变量也可以直接使用,但有时会出现一些问题,所以,要使用的变量还是老老实实的声明一下比较好。n就是变量名,开始为变量命名时要小心,因为尽管它们几乎可以用任意名称,但是仍然有一些规则需要遵循。变量名称仅能包含字母、数字和美元符号($)。变量名称不能以数字开头。变量必须是唯一的。(注意:理论上中文也是可以用做变量名的,不过由于flash对中文的支持并不是特别的地道,用中文做变量时经常会出现很多无法预计的问题,因此个人不建议用中文做为变量名)冒号的后面就是这个变量的数据类型,常用的数据类型共有:Number(数字)、String(字符串)、Boolean(布尔)、Object(对象)、Array(数组)、MovieClip(影片剪辑)、Fuction(函数)等等。Number数据类型是双精度浮点数。数字对象的最小值大约为5e-324,最大值大约为1.79E+308。您可以使用加(+)、减(-)、乘(*)、除(/)、求模(%)、递增(++)和递减(--)等算术运算符来操作数字。字符串是诸如字母、数字和标点符号等字符的序列。在ActionScript语句中输入字符串的方式是将其放在单引号(')或双引号()之间。布尔值是true或false中的一个。布尔值经常与ActionScript语句中通过比较来控制脚本流的逻辑运算符一起使用。为了不影响节奏,其他几个相对复杂的数据类型放在后面讲……下面接上面的例子:后面的n=10就是给新声明的数字变量n赋值,也可以一步把声明和赋值完成:varn:Number=10。如果没有数据类型的声明,比方说前面是这么声明的:varn=10(n是数字变量),在后面那怕再加上一句n=”hellFire”(n又变成字符串变量了),flash在生成时也不会报错,但这个程序执行起来就非常的危险了,因此养成良好的变量声明习惯是编写as脚本基础。变量的作用域变量的范围是指识别(定义)变量的区域和可以引用变量的区域。变量在其中被识别的区域可能在某个时间轴中或在某个函数内部,也可能在整个应用程序中是全局已知的。在使用ActionScript开发Flash应用程序时,了解变量范围是非常重要的。范围不仅表示可以在什么时间和位置引用变量,还表示一个特定的变量可以在应用程序中存在多长时间。在函数体中定义变量时,一旦指定的函数结束,变量就不再存在了。如果您试图在错误的范围内引用对象或引用已过期的变量,您的Flash文档中将会出错,这将导致出现意外情况或使功能受到破坏。在ActionScript中有三种类型的变量范围:全局变量和函数对于文档中的每个时间轴和范围均可见。因此,全局变量是在代码的所有区域中定义的。时间轴变量可用于该时间轴上的任何脚本。局部变量在声明它们的函数体(由大括号界定)内可用。因此,局部变量仅仅是在代码的一部分中定义的。Ps:局部变量因为是临时的变量,它会随着函数的被调用被创建,会随着函数执行的结束而被自动删除,同时也可以释放它所占据的资源,尽可能的使用局部变量高级程序员节省资源的必备法宝;相反的全局变量因为会自始到终的常驻在内存里面,它是蹲在那里不会走的,除非你结束当前正在执行的flash。所以有极端的说法是:全局变量是开发者的噩梦!。虽说有点过,不过也确实从侧面反映了一些事实。关于运算符本节介绍关于常见类型的运算符、运算符优先级和运算符结合律的一般规则。运算符是指定如何组合、比较或更改表达式中的值的字符。表达式是Flash可以计算并返回值的任何语句。可以通过组合运算符和值或者调用函数来创建表达式。++递增(前缀)--递减(前缀)+一元+!一元-(非)typeof返回类型信息void返回未定义值*乘法/除法%求模+加法-减法小于大于=小于或等于=大于或等于instanceof检查原型链in检查对象属性=赋值*=乘法赋值/=除法赋值%=求模赋值+=加法赋值-=减法赋值=按位左移位赋值=按位右移位赋值=按位无符号右移位赋值&=按位与赋值^=按位异或赋值|=按位或赋值&&逻辑与||逻辑或按位左移位按位右移位按位无符号右移位&按位与^按位异或|按位或?:条件由于运算符众多所以不一一举例说明了,各位可以看flash的帮助文档的“学习AdobeFlash里的ActionScript2.0”里的“关于运算符”详细了解,没有安装Flash的同学可以在\\172.31.14.190\网站服务器03\网站服务器01\制作部资料站\学习资源\Flashas3帮助文件里找到中文版的CHM格式的flash帮助文件。保留字命名实例和变量时,应避免使用保留字,否则会引起代码错误。保留字包括ActionScript语言中的关键字。此外,不要用ActionScript2.0语言中的任何字(称为语言构造)作为实例或变量名称。ActionScript构造包括类名称、组件类名称、方法和属性名称以及接口名称。警告永远不要使用不同的大小写来避免与保留字发生冲突。例如,将TextField类的一个实例命名为textf
本文标题:Flash入门教程
链接地址:https://www.777doc.com/doc-2871991 .html