AS-入门教程.doc_第1页
AS-入门教程.doc_第2页
AS-入门教程.doc_第3页
AS-入门教程.doc_第4页
AS-入门教程.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AS-入门教程 做过Flash动画的Flash爱好者们都知道,要做好一个Flash动画,AS是必不可少的,即使只是很简单的几句代码也能起到整个Flash画龙点睛的作用。这里我只简单的介绍一下AS的基本常识。首先我们要了解AS要写在什么地方,什么时候AS会被触发执行。 1、帧: 写在关键帧上面的AS,当时间轴上的指针走到这个关键帧的时候,就写在这个帧上面的AS就被触发执行了。常见的例子有在影片结尾的帧写上 stop() 等。操作方法就是点选关键帧,然后打开AS面板。 2、按钮: 不同于帧上面的AS,按钮上面的AS是要有触发条件的。要把AS写在按钮上,操作方法是点选目标按钮,然后打开AS面板。举个例子能说的更明白。假设有一个动画,要让它在播放完同时停止,那么,你要做的就是在 这个动画的最后一帧写AS stop(); 再假设有个按钮,效果是按下按钮后停止播放,那么步骤如下。做一个按钮,放到主场景,点选按钮,然后打开AS面板。现在如果也在按钮上写 stop(); 那么,输出的时候就会提示错误。正确的应该这样写 on(release) stop(); 这里要比帧的动画多这些代码: on(release) , 整个代码翻译过来就是: 当(松开) 停止 红色的代码表示鼠标的触发事件事件之一,这里用的是 release 松开,按钮的常用事件: release 松开 releaseOutside 在按钮外面松开 press 按下 rollOver 鼠标进入按钮的感应区 rollOut 鼠标离开按钮的感应区 现在很明确了:写在按钮上面的AS一定就是这种格式的: on(事件)要执行的代码 3、MC(电影剪辑) 如果你看懂了上面的内容,那么写在MC上面的AS和写在按钮上的大同小异。操作方法就是点选MC,然后打开AS面板。看个例子 onClipEvent(load) stop(); 同样,MC需要一个事件来触发AS的执行。翻译这段代码就是 当剪辑(载入) 停止 红色代码同样表示一个事件。MC的事件有下面这些: load 载入,当MC出现的时候执行。也就是除非卸载这个MC,否则load事件内的代码只执行一次 unload 卸载,当MC卸载的时候执行 enterFrame 存在的每个帧。在MC存在的每个帧都要执行一次代码。如果你的场景有100个帧,有个MC从41帧开始出现到100帧才消失,那么这个MC上面的代码执行了60次 mouseDown 按下鼠标,在场景内任何地方都算。和按钮不一样的地方 mouseMove 移动鼠标,只要移动鼠标就执行代码 mouseUp 松开鼠标 .同样你要明确:写在MC上的代码一定总是这种格式: onClipEvent(事件)代码 看到这里,如果你明白的写在 帧、按钮、MC上的代码有什么不一样,任务就算完成了。ActionScript是什么样子的? 学习目标:认识一下ActionScript,知道ActionScript的组成。 通过上节课我们知道了as就是些指令的集合,完成对影片的控制,下面我就看看AS是什么样子的,知道了它的样子,我们就可以比着瓢画瓢,然后进一步的比着葫芦画瓢,最后我们就扔了葫芦一样的画瓢了,嘿嘿,我们会做到的。现在给大家个问题:做一个模拟画正弦曲线的动画。您会想到我用遮罩来完成,是可以的,如果画一个真正符合y=sin()的曲线还真难:(用as就简单了。下面我们开始: 新建flash文档,属性设置为:大小500X400,背景色为白色。打开动作面板,把下面的代码复制到第一桢。/设初始值; var x = 10; /创建一个空的影片剪辑mcs; _root.createEmptyMovieClip(mcs, 1); /让mcs移动到(100,200)的位置; _root.mcs.moveTo(100, 200); /设置线条的粗细、颜色及透明度; _root.mcs.lineStyle(2, 0x000000, 100); /这个函数的作用是画出图形; _root.mcs.onEnterFrame = function() /画线; this.lineTo(x+100, -(100*Math.sin(0.02*x)-200); if (x500) x += 5; 然后ctrl+enter测试,看到慢慢画出的正弦曲线了吧!一、as从上至下一行行的去写上面的代码我们可以这样理解:初始化-创建个演员-让演员站好位置-准备好笔-在演员身上画线-反复的画,这个过程就好象我们做菜的菜谱,所以我们利用as做动画,自己要先做个这样的规划,官话叫算法。我们不去理那东西。二、每行有各种组成元素这些组成元素都有自己的名字和规则。比方说关键字、语法格式等等,了解这些基本知识是学习Flash的一个最基本的步骤。注释 ActionScript中的注释仅仅供开发者做一些注记,并不当作程序的正式组成部分。flash是不理合这些注记的,也就给自己看的,知道这段或者这句是做什么的等等。单行的注释用/开头,比如我们上面的用/画线;多行注释用/*开头,*/结尾。语句 ActionScript中每个完整的语句以分号;结束,执行某项特定的操作,比如上面的代码_root.mcs.moveTo(100, 200);就是让名字mcs的演员站到点(100, 200)上。关键字 关键字是ActionScript的个人财产,进行程序设计时,在变量、函数等用户自定义的元素命名时必须加以避讳。例如root就是一个关键字,那么我们就不能将给一个演员取名字叫root,否则程序就会被你搞得晕头转向,不知道你想让谁干什么了 。 变量 你可以理解成一个放东西的容器,我们在需要保存一些数据就要声明一个,比如上面的x,我们声明var x = 10;并且里面放了个数字10。运算符 运算符好理解,含义基本和我们小学学的一样,就是写法上个别不同,包括=、+、-、*等等。点(.) 这个小点(.)功能可太强大了,别看它不起眼,用的却非常频繁,我们可以这样理解这个(.):中的。它的作用通常两个。第一,用来定位, 如_root.mcs就是根影片级别上的一个演员mcs。第二、用来访问对象的属性、调用对象方法等。类 这个概念更抽象,就象个黑匣子,今后详细介绍,比如我们这里的math就是个类。函数 你可以理解为完成特定任务的一段代码,有系统提供的你可以直接调用,比如上面的sin函数,也可以自己定义了,上面的画线就是自己定义的了。说了很多,大家糊涂了吧,没有什么的,上面的代码不要求你看懂,现在你知道2点就可以了,as程序是一行行的;有各种元素组成。这样就算你学会了这节内容,你看学as很容易吧。三、如何编辑ActionScript 2.0的代码? 学习目标:学会flash的动作面板的使用。 在教程二中我们给大家简单的看看了as代码的结构,知道as有若干元素构成的,下面我们看看as的编辑环境,下图就是ActionScript的编辑器,就是我们看到的动作面板了。一、ActionScript的编辑器的打开如果你看不到上面的动作面板,很简单的,在Flash MX 2004中打开菜单窗口-开发面板-动作就打开了ActionScript编辑器。直接按按功能键F9更方便的,(高手都是这样,喜欢快捷键的,我不是的)。二、仔细的看看面板上有什么?常用的我都在图上标出来了,大家自己试验下,就明白每个部分是做什么的了。1、脚本中的关键词、属性、方法等等英文单词记不住,该怎么办呢?as为我们想的很周到的,我们可以通过多种方法完成代码录入。 动作工具箱:选中你需要的双击,代码就跑到了编辑区去了,并且还给你了提示,知道其他的部分如何填写了,在这里好象我们是在做选择题一样,很简单吧。向脚本添加项目工具:就是那个大大的号,下拉的菜单列出你需要的项目元素,你看这里跟动作工具箱一样的,类型为我们分的很细的。学会利用好.符号:恰当的利用.符号,可以触发代码提示。那什么是恰当呢?第一、取名字加后缀的技巧给as中的元素取名字时加特殊的后缀,这样你在录入名字后再打一个.后面你选择就可以了。比如我们新建了一个元件属于影片剪辑类型,我们就可以给它取个名字mymc_mc,我们在as中调用这个影片剪辑的实例,改变它的一些外观属性,在写代码时,名字后面跟着打.,提示出现了,关键是后缀_mc的功劳呀。关于这些名字的问题后面我们会讲。第二、定义变量说明类型元素类型as可以自动识别。比如声音、颜色、按钮、文本等等。我们下面定义一个放声音的容器var MyMp3:Sound=new Sound() ;现在输入MyMp3.你看见了提示吧,关键是我们这里多个:Sound,你去掉就不可以自动提示了:( 学会用(在你输入一些函数时,后面打出左括号,将会有一个提示窗口显示出来,列出这个函数所需要的参数,这样你就不会搞错了。2、写的代码,版面不美观,一个字乱,我怎么处理?as编辑器,可以给你排版的,点下自动套用格式工具就解决了。3、写的代码有没有错误?检查语法工具,比你一行行的自己看代码方便的。4、写代码,不明白的地方到那里找老师问?求帮助,去点脚本参考工具好了,它给你的欣喜比一个好老师还要多,关键是要有耐心去看呀。5、多个地方都写了代码,我怎么去找?这个容易的,去脚本导航器栏看看,想修改那个点那个了。这个编辑器的功能太多了,主要的给大家说了,关键是大家多练,练多了就找到使用的技巧了。总结一下,这节,你知道2点就可以,一、能看见动作面板。二、知道面板上的工具做什么的,就算你看懂教程了。四、哪里可以放ActionScript呢? 学习目标:要通过自己的练习,知道在什么地方我们可以添加脚本。 如果大家已经熟悉了动作面板的各个功能,现在最关心的是在我们当导演做动画时,在什么地方放我们写的脚本是最合理的呢? 可以简单的一句话概括谁能触发脚本运行,就加在谁身上。话是土了点,也是为了好理解吧,下面我们细细的来说这个问题。一、as的放置位置 在Flash的元素中有两类元素可以携带as,分别是时间轴上的关键桢和特定的元件。1、时间轴的关键桢你可以把脚本加在时间轴的任何一个关键桢上(注意必须是关键桢),根据我们过去做动画的经验,每个场景都有时间轴,每个场景呢也都有若干个图层, 对于元件也有关键桢,这些地方只要有关键桢我们都可以加脚本,但这里要大家养成一个习惯,把脚本独立的放在一个层中,这个层什么元件都不放,就是个脚本的载体,这样你在今后脚本的修改就方便了。看下图这样就可以。2、特定的元件关于元件这个概念我就是不多说,你就把它想成你导演的作品中的演员吧,这里加了个特定,就是说在三类元件中,把图形元件排除掉,图形元件不可以加载脚本,所以在影片剪辑,按钮元件上我们都可以加的,不过,这2个元件触发脚本的事件不一样的。二、as的形式as的组织形式有二种吧。1、代码片段:它们散乱的分布在不同的关键桢、影片剪辑、按钮上。2、代码文件:就是代码独立的以一个文件的形式出现,文件扩展名是.as,如果你在什么地方需要,就用#include包含你的脚本文件,比如这样:#include path filename.as,这样代码可以重复利用了,在这里特殊点的就是的类 ,也是独立的as文件,它的导人不是这样的,这个在这里说明下,后面我们会详细介绍的。这部分你要知道as放2个位置呀。五、从gotoAndPlay.开始 学习目标:通过简单的例子,反复练习play、gotoAndPlay、stop的使用,真正理解什么地方可以添加as。在教程四我们知道有具体的3个地方可以加载as,那就是关键桢、影片剪辑和按钮,现在我们通过具体的例子真正去做一做。我们做动画时如果按时间的顺序安排演员的表演,*的也只有时间轴上播放头的定位。具体情况呢就是停、播、到某桢停,到某桢播,或者相对的说上一桢,下一桢,上一场景,下一场景。对于这些时间轴上的定位,as早给我们准备了现成的指令,就是函数吧,对应下面几个:1、Stop():是暂停当前动画的播放。2、Play():暂停动画,继续播放。播完从头再播。3、gotoAndPlay(scene, frame):到某场景的某桢再开始播。4、gotoAndStop(scene,frame):到某场景的某桢暂停动画。5、nextFrame():播放下一帧,并停在下一帧。6、prevFrame():播放前一帧,并停在前一帧。7、nextScene():进入下一场景。8、prevScene():进入前一场景。很重要的说明:字母大小写不能变,as2特殊呀,区分大小写。scene,frame这里是条件,也就是参数,scene指场景,可以省略,所以用了,省略了表示当前场景。frame代表桢,其取值有2种情况,一是具体的桢值为数字,二是标签,那值就是字符串了,就必须用括起来。基础讲完了,现在开始练习用这些函数。动画要求:用按钮控制园和方的运动。步骤:1、建立三个元件圆、方和三角,这个就是我们指挥的3个演员,其中三角是旋转的影片剪辑。2、新建图层,名字圆的运动,分别在1、49桢插入关键桢,放置圆元件,建立运动动画。3、新建图层,名字方的运动,分别在50、100桢插入关键桢,放置方元件,建立运动动画。4、新建图层,名字三角,在1桢插入关键桢,放置三角元件。5、打开公共库-按钮,拖出5个不同的按钮,放在五个新建图层。分别命名为play,stop,next,prev,gotoplay 6、新建图层,名字ActionScript,在第1桢插入关键桢,加动作脚本stop();, 目的就是开始是静止的,等着我们去控制。7、在图层圆的运动,第49桢加动作脚本stop()。8、在图层play按钮上,加动作脚本: on (release) play(); 9、在图层stop按钮上,加动作脚本: on (release) stop(); 10、在图层next按钮上,加动作脚本: on (release) nextFrame(); 11、在图层frev按钮上,加动作脚本: on (release) prevFrame(); 12、在图层gotoPlay按钮上,加动作脚本: on (release) gotoAndPlay(50); 13、在图层三角上,为影片剪辑加动作脚本 onClipEvent (mouseDown) stop(); 在这里你不熟悉的就是on (release),理解成当鼠标指针经过按钮时释放鼠标按钮就做.,还有onClipEvent (mouseDown)就是当按下鼠标左键时做.,后面我们要详细的介绍。这个例子好好的体会的是2点,一是放的位置,二是8个定位播放头的指令。反复的去练。到自己懂了停止。六、给元素取个好名字 学习目标:掌握取名字的技巧,知道那些名字是最好的,那些名字是非法的。在教程四和五我们告诉大家一个问题:as可以放在关键桢,按钮,影片剪辑,并且通过实例让大家去练习,虽然有个别的代码大家不明白,但你放心,我们是一步一步的学呀,教程还要大家掌握时间轴的控制,也就是桢的播、停、前进、后退,相信大家都理解了,就是几个常见的单词组合啊:)动作脚本就是通过一条条的语句创建、控制我们动画中的演员,要完成这些操作,我们必须知道控制的对象是谁,或者是叫什么的元素,所以创建和使用他们,名字很关键。取好的名字,是我们想做的,那什么是好的名字呢,这个需要了解一定的规则判断一个好名字的标准是是否能够以最少的字符提供更多的信息。在as中,我们需要命名的东西是非常非常的多,比如一个按钮、一个电影剪辑的实例、一个文本实例、一个变量,一个函数,一个类,都必须命名。一、可以做名字的字符共四类:字母、数字、下划线(_) 、美元记号 ($)。特别要求:名字的第一个字符只有其中的三类是可以的字母、下划线(_) 、美元记号 ($),也就是数字放在开始不合法的,比如,你做了个影片剪辑是个3朵玫瑰花,你命名为3rose就是错的,你可以这样命名rose_3_mc。二、加个后缀是个好习惯支持自动代码提示所需的后缀:Array_array按钮_btn摄像头_camColor_colorContextMenu_cmTextField_txt ContextMenuItem_cmiCamera_cam日期_dateTextFormat_fmtError_errLoadVars_lvLocalConnection_lc麦克风_micMovieClip_mcNetStream _nsPrintJob_pj NetConnection _ncSharedObject_soSound_sound String _str Video _videoXML_xmlXMLSocket_xmlsocketXMLNode_xmlnode 如果你定义一个名称时,可以参考上面的类型,加个对应的后缀,这样你录入代码就简单了,可以获得更好的提示,减少了你的麻烦了吧。三、区分大小写as2对于名字的字符是区别大小写的,千万注意这个问题。比如,Mymc、mymc是二个名字。四、不要使用相同的名字。无论是定义对象,还是场景里面MC的实例,或是标签等等都不能相同。减少不必要的麻烦。五、不要使用as系统有的名字。as系统占用的一些单词是不可以用的,象关键字、类名、属性、过程名,比如:class、break、for,play等等。上面我们介绍了命名的时候大家需要注意的几点,今后在应用中再取掌握。本节大家应该学会如何命名了吧。七、按钮动情的事件 学习目标: 理解事件、动作、对象、函数的概念。真正的掌握按钮上的八大事件的具体对应的操作行为。这两天比较忙,没有来的及写教程,回顾下教程六,我们就学了一个最基础的东西:取名字。官话讲标识符=名字了。现在我们知道把脚本放在谁那里了,那么脚本是怎么起作用的呢,也就是怎么去运行呢,运行你的脚本是需要触发才执行的,好比,你做好了各式各样的礼花,没有时机去引燃,你是看不到的。as需要的就是事件了,下面我们就看看按钮专注的事件。在as里软件或硬件发生的事情就叫事件。假设我们用flash做个mp3播放器,其中必须有个单击播放按钮开始唱某个歌曲操作。在操作中,单击就是事件,这个事件触发了播放具体的某个歌曲这个动作,其中,按钮,歌曲,都是我们控制的对象,完成这个操作,在按钮上用了一个函数on()。接二连三我们接触好多个概念,大家可能糊涂了,没有什么的,慢慢的理解。事件:发生的事情。可以是系统内部的,可以是用户自己的。比如我写着教程,没有烟抽了,就是个事件。动作:动作是在播放 SWF 文件时指示 SWF 文件执行某些任务的语句。例如,gotoAndStop() 将播放头放置到特定的帧或标签。就是一条的语句不吧。比如我没有烟抽,喊儿子上街去买包,就是动作了。对象:就是你想操作东西。按钮就是个对象。不过它是抽象的。比如,我、烟、儿子都是对象。实例:具体的对象。比如人是对象。张三就是人的一个实例。函数:把一条的指令集合起来,完成一个特定的动作。比如on()函数。有些概念在这里大家知道就可以,今后我们还会具体的讲。从上面的知识可以看出,事件特别特别的重要,有事件发生才可以产生动作,我们的脚本才没有白写。 在as中,我们知道三个地方加as,那当然在这个三个地方都会有事件产生。下面我们就看按钮上的事件,他们是通过函数on完成的。 on(mouseEvent) / 此处是您的语句 这里的mouseEvent叫参数,就是前提条件,具体的就是我们下面的八大事件:1、press:一个简单的鼠标点击事件可以被分为两个过程:鼠标按下(press)和鼠标放开(release)。当鼠标移动到一个按纽的可点击区域里并点击该按纽时,Press事件发生,这适用于按纽作为开关的场合。2、release:在鼠标指针经过按钮时释放鼠标按钮。3、releaseOutside:当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮。4、rollOver鼠标指针滑过按钮。5、rollOut鼠标指针滑出按钮区域6、dragOver在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。这是一个很有用的事件,可以用在很多场合,如游戏,以及购物车等。7、dragOut在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域。8、keyPress (key) 按下键盘上指定的键。这个特殊呀,不是鼠标是键盘了:), 今后我们再介绍它。下面我们就做个flash好好的体会下这前7个鼠标上的事件。要求:通过按钮上的不同事件,显示当前事件的介绍。步骤:1、新建flash文档。2、从按钮库中拖出7个你喜欢的按钮放在新建的7个图层中。3、新建图层,上面放个动态文本,变量对应:mouse_txt。4、布局看下图。5、在每个按钮上分别添加as。格式类似: on(mouseEvent) mouse_txt=具体介绍的内容; 注意每个按钮的mouseEvent对应不同的事件 。你可以下载源代码仔细看看,主要目的是用鼠标练习,真正掌握,什么时候需要对应的各种事件。八、关于按钮事件处理的三种方法学习目标: 了解事件处理的三种方法,掌握on函数和事件函数的正确书写格式。在上个教程上我们知道了按钮上的八大事件,其中常用的是前七个,对于keyPress事件我们会用专门的关于键盘操作给大家介绍,相信大家通过我给大家的演示例子应该掌握了鼠标的具体操作对应的前七个事件:press,release,releaseOutside,rollOver,rollOut,dragOver和dragOut。理解了事件,我们就可以利用这些事件来完成我们的控制,让这些事件来触发我们要求的动画动作。有那些方法可以完成呢?共有3种方法,其中在我们上个教程上我们就利用了第一on()函数。处理事件的三种方法是:针对对象的on()事件处理函数。 事件处理函数方法。 事件侦听器。下面我们详细的介绍针对按钮来说,这三种方法的实现。一、针对按钮对象的on()事件处理函数on()事件处理函数是最传统的事件处理方法。它直接作用于按钮元件实例,相关的程序代码要编写到按钮实例的动作脚本中。on()函数的一般形式为:on(鼠标事件) /此处是你的语句,这些语句组成的函数体来响应鼠标事件 上面()内的鼠标事件叫函数on的参数,具体可取值就是我们上面介绍的八大事件了。下面我们做个例子:要求:通过按钮控制主时间轴和影片剪辑的时间轴。步骤: 1、新建flash文档,创建2个元件 fang,yuan,在元件fang上面画个方块,在元件yuan上画上圆。 2、新建元件move_mc,用元件yuan创建运动动画,并在第一关键桢加as:stop(); 3、新建2个图层move1_mc,move2_mc。在图层move1_mc上拖入元件fang,在第20桢插入关键桢,创建运动动画。在图层move2_mc上拖入元件move_mc,并给这个实例个名称:move_mc。 4、新建图层ActionScript,在第一关键桢加as:stop(); 5、新建2个图层move1_btn,move2_btn,分别从公共库中拖出2个按钮,图层move1_btn上放move1_btn控制主时间轴,加as: on (press) play();图层move2_btn上放move2_btn控制元件yuan的时间轴,加as:on (press) move_mc.play();注意:看上面的二个脚本不一样的呀,这个是关键。所以脚本放在on函数上,主要的问题是区别你控制的对象的层次,这个问题后面还要介绍的。一、针对按钮对象的on()事件处理函数on()事件处理函数是最传统的事件处理方法。它直接作用于按钮元件实例,相关的程序代码要编写到按钮实例的动作脚本中。on()函数的一般形式为:on(鼠标事件) /此处是你的语句,这些语句组成的函数体来响应鼠标事件 上面()内的鼠标事件叫函数on的参数,具体可取值就是我们上面介绍的八大事件了。下面我们做个例子:要求:通过按钮控制主时间轴和影片剪辑的时间轴。步骤: 1、新建flash文档,创建2个元件 fang,yuan,在元件fang上面画个方块,在元件yuan上画上圆。 2、新建元件move_mc,用元件yuan创建运动动画,并在第一关键桢加as:stop(); 3、新建2个图层move1_mc,move2_mc。在图层move1_mc上拖入元件fang,在第20桢插入关键桢,创建运动动画。在图层move2_mc上拖入元件move_mc,并给这个实例个名称:move_mc。 4、新建图层ActionScript,在第一关键桢加as:stop(); 5、新建2个图层move1_btn,move2_btn,分别从公共库中拖出2个按钮,图层move1_btn上放move1_btn控制主时间轴,加as: on (press) play();图层move2_btn上放move2_btn控制元件yuan的时间轴,加as:on (press) move_mc.play();注意:看上面的二个脚本不一样的呀,这个是关键。所以脚本放在on函数上,主要的问题是区别你控制的对象的层次,这个问题后面还要介绍的。二、事件处理函数方法事件处理函数方法是一种类方法,看到这里又有新概念了:类,没有什么,不明白跳过去。事件在该类的实例上发生时产生调用。例如,Button(按钮)类定义onPress事件处理函数,只要按下鼠标就对Button对象调用该处理函数。Flash Player在相应事件发生时自动调用事件处理函数。默认情况下,事件处理函数方法是未定义的:在发生特定事件时,将调用其相应的事件处理函数,但应用程序不会进一步响应该事件。要让应用程序响应该事件,需要使用 function语句定义一个函数,然后将该函数分配给相应的事件处理函数。这样,只要发生该事件,就自动调用分配给该事件处理函数的函数。事件处理函数由三部分组成:事件所应用的对象、对象的事件处理函数方法的名称和分配给事件处理函数的函数。事件处理函数的基本结构为: 对象.事件处理函数方法名称 = function () / 你编写的程序代码,对事件作出反应 1、事件所应用的对象:就是具体的类的实例,在这里就是我们的按钮,我们用前给它取个名字。2、对象的事件处理函数方法的名称:简单的说就是具体的方法。那什么是方法呢,就是可以做的事情。比如,王小妹是个款姐,你娶了她就可以买车、可以出国.,在这里王小妹就是个对象,买车、出国,就是方法,但你如果让王小姐去生个小鸡蛋是不可能的,因为它没有这个方法。你做的具体按钮是个对象,它也有自己的方法,就是按钮可以做的。共有十大 函数,你结合我们前边介绍的八大事件去理解。下面我列出这十大 函数: Button 类的事件处理函数: 事件处理函数 事件 说明 onDragOut dragOut 当在按钮上按下鼠标按钮,然后将鼠标指针滑出按钮时调用。 onDragOver dragOver 当用户在按钮外部按下鼠标按钮,然后将鼠标指针拖动到按钮之上时调用。 onKeyUp keyPress结合键盘 当释放按键时调用 onKillFocus 结合键盘 当从按钮移除焦点时调用 onPress press 在鼠标指针位于按钮上方的情况下,按下鼠标按钮时调用 onRelease release 在鼠标指针位于按钮上方的情况下,释放鼠标按钮时调用。 onReleaseOutside releaseOutside 在鼠标指针位于按钮内部的情况下按下按钮,然后将鼠标指针移到该按钮外部并释放鼠标按钮。 onRollOut rollOut 当鼠标指针滚动到按钮区域之外时调用 onRollOver rollOver 当鼠标指针滚过按钮时调用。 onSetFocus 结合键盘 当按钮具有输入焦点而且释放某按键时调用。 比较上节的内容是否很相似?就是多了2个onSetFocus,onKillFocus这个在键盘操作时很有用的。3、分配给事件处理函数的函数 这个部分就是我们自己写代码的地方了。对上面的例子我们按现在的方法去写:步骤: 1、新建flash文档,创建2个元件 fang,yuan,在元件fang上面画个方块,在元件yuan上画上圆。 2、新建元件move_mc,用元件yuan创建运动动画,并在第一关键桢加as:stop(); 3、新建2个图层move1_mc,move2_mc。在图层move1_mc上拖入元件fang,在第20桢插入关键桢,创建运动动画。在图层move2_mc上拖入元件move_mc,并给这个实例个名称:move_mc。 4、新建2个图层move1_btn,move2_btn,分别从公共库中拖出2个按钮,图层move1_btn上放按钮move1_btn,图层move2_btn上放按钮move2_btn。 5、新建图层ActionScript,在第一关键桢加as: stop(); move1_btn.onPress = function() play(); ; move2_btn.onPress = function() move_mc.play(); ; 效果是不是一样的?看还是这样方便吧?就在主时间轴加as:),格式记不住,你死套就可以了。 三、事件侦听器事件侦听器让一个对象(称作侦听器对象)接收由其他对象(称作广播器对象)生成的事件。这个我们们今后具体的介绍。好了,今天的内容看起来太多了,其实仔细的想下,就一个新东西.=function().,知道这个格式你就可以死套了,象按钮类的十大函数的名称跟前面的八大事件比较就多了个on。多练习,看看例子,自己做一遍。九、影片剪辑上的九大事件 学习目标:掌握作用于影片剪辑的九大事件在教程七、八我给大家介绍了跟按纽有关的八大事件和十大函数,以及按纽上as添加的三种方法,相信大家经过自己的亲自操作,应该都掌握了,关键是先自己看,然后自己做,再变化着去做,这样就会提高。在这部分教程我给大家讲下影片剪辑的事件,后面再继续介绍影片剪辑的事件函数和添加方法,整个教学思路大家应该明白:关键桢-按纽-影片剪辑.其实呢,影片剪辑跟按纽是相似的,在学的过程中大家对照着去学。影片剪辑就是MovieClip,我们一般简称MC,MC一般是用onClipEvent() 处理函数处理事件。它喜欢的事件可以有以下9种吧:1、load:当前 MC 被装入并准备显示之前触发该事件。这个事件一般可以做一些初始化的工作,比如:变量的定义,赋值,加载as文件等等,很有用处的。 2、unload:当前 MC 被卸载准备消失之前触发该事件 。3、enterFrame:当前 MC 每次计算帧上的内容时触发该事件。基本你可以这样理解,在时间轴上每播一个关键桢就触发这个事件,特别有用的,比如我们做些导航菜单。 一般在需要进行些循环的检测时你一定会想到这个事件的。4、mouseMove:当鼠标移动时触发该事件。对比按纽的rollOver。 5、mouseDown:当鼠标左键按下时触发该事件 。对比按纽的press6、mouseUp:当鼠标左键抬起时触发该事件 。对比按纽的release。7、keyDown:当键盘按键被按下时触发该事件。 8、keyUp:当键盘按键被按下后松开时触发该事件 。对比keyPress。9、data:当前 MC 接收到新数据时触发该事件。这个事件跟 loadVariables() 和loadMovie()两个函数结合的最紧密。看到了,大家会感觉MC没有什么特别的吧,跟按纽比较就多load,unload,enterFrame,data,对于鼠标事件还没有按纽细呢。上面的9大事件,常用的就是load,enterFrame。:)下面我们就结合例子感觉下MC 的这些事件。这里要用到类似on()的函数。 onClipEvent(movieEvent) / 此处是您的语句 这里的movieEvent就是我们上面介绍的9大事件中的一个或者多个。要求:做个flash,查看MC的感兴趣的事件。步骤:1、新建flash文档。2、新建MC元件yuan,随便画个圆好了。3、再建一个MC元件yuan_mc,把元件yuan拖进,创建个运动动画,加一个新的图层,在第一关键桢加as: stop(); 就是这个mc是个运动动画,开始呢是停止的。4、新建图层yuan_mc,把元件yuan_mc拖人。5、新建四个图层分别命名为:show_txt,showef_txt,showload_txt,showcont_txt,在每个图层各放一个动态文本,对应的变量为:show_txt,showef_txt,showload_txt,showcont_txt。为了显示当前的状态。6、点图层yuan_mc中的MC元件yuan_mc,加as。 onClipEvent (load) _root.showload_txt = load事件已经完成!; _root.showcont_txt = 0; onClipEvent (mouseDown) _root.show_txt = 现在是:mouseDown事件!; onClipEvent (mouseMove) _root.show_txt = 现在是:mouseMove事件!; onClipEvent (keyDown) _root.show_txt = 现在是:keyDown事件!; onClipEvent (keyUp) _root.show_txt = 现在是:keyUp事件!; play(); onClipEvent (enterFrame) _root.showcont_txt+; _root.showef_txt = enterFrame事件正在进行着:; 上面的代码大家应该可以看明白,就是_root.就是主时间轴上的意思,后面我们专门介绍。动态文本还没有讲,不明白跳过去, 这个例子就一个目的,让大家知道这9个事件罢了。闭着眼睛想想,对于MC的函数onClipEvent 的事件有哪些?知道把手指头勾起来就可以了。十、影片剪辑上的事件处理的三种方法 学习目标:通过在部分的学习大家了解在影片剪辑上的事件处理也有三种方法。重点掌握onClipEvent()函数的使用和事件函数的编写。我们学到这里可以看出,影片剪辑跟按纽一样的,加as的方法也是三种,当然是一样的了,都是元件呀,不同还是有的,大家在比较中去学东西。下面我们详细介绍这三种方法:针对对象的onClipEvent()事件处理函数。 事件处理函数方法。 事件侦听器。一、针对MC对象的onClipEvent()事件处理函数学习了按纽的on函数再看这个就简单了。我们在讲MC的九大事件中的例子中也多次用到了,它的格式: onClipEvent(movieEvent) / 此处是您的语句 我们就理解为:当发生(九大事件中的一个或者多个),我们就做自己写的as代码。 这个函数使用的关键是as代码加在MC上。下面我们看个简单的例子:要求:通过鼠标控制MC。好象我们举的例子太简单了,其实在这里就是告诉大家如何做最基础的,有了基础大家就可以处理自己在as应用中的问题了,大家可以设计更好的例子,在回复中告诉我。步骤:1、新建flash文档2、新建元件yuan,随便画个圆圈放在那里就可以了。3、新建MC元件yuan_mc,把刚才的元件yaun拖进去,简单的做个运动动画。4、在主场景中,新建1个图层yuan_mc把yuan_mc拖进去。4、点元件yuan_mc加as: onClipEvent (mouseMove) stop(); this._alpha = 0; onClipEvent (mouseDown) this._alpha = 100; play(); 这段代码可能有2个地方大家不明白一是this就是代表元件本身,二是_alpha这个是MC的属性,透明度,=0全部透明了就看不见了,=100就不透明了,还是老样子。效果是移动鼠标小球没有了,点下又出来了二、事件处理函数方法对于事件处理函数现在大家应该不陌生了,按纽就有十大事件函数的,对于MC复杂了点,多了好多。共18个。事件处理函数 事件 说明 onData data 当所有数据都加载到影片剪辑中时调用。 onDragOut DragOut 鼠标指针位于按钮内时按下鼠标按钮,然后滑出该按钮区域,在此条件下,当鼠标指针位于该按钮外时进行调用。 onDragOver DragOver 鼠标指针位于按钮内时按下鼠标按钮,然后滑出该按钮区域,接着滑回到该按钮上,在此条件下,当鼠标指针位于该按钮上时进行调用。 onEnterFrame EnterFrame 以 SWF 文件的帧频持续调用。首先处理与 enterFrame 剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作脚本。 onKeyDown KeyDown 当按下按键时调用。使用 Key.getCode() 和 Key.getAscii() 方法可获取关于最后所按键的信息。 onKeyUp KeyUp 当释放按键时调用。 onKillFocus KillFocus 当从按钮移除焦点时调用。 onLoad Load 当影片剪辑被实例化并显示在时间轴上时调用。 onMouseDown MouseDown 当按下鼠标左键时调用。 onMouseMove MouseMove 每次移动鼠标时调用。 onMouseUp MouseUp 当释放鼠标左键时调用。 onPress Press 在鼠标指针位于按钮上方的情况下,按下鼠标按钮时调用。 onRelease Release 在鼠标指针位于按钮上方的情况下,释放鼠标按钮时调用。 onReleaseOutside ReleaseOutside 在这样的情况下调用:在鼠标指针位于按钮内部的情况下按下按钮,然后将鼠标指针移到该按

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论