FLASH动作脚本详解.docx

上传人:b****4 文档编号:24650121 上传时间:2023-05-29 格式:DOCX 页数:138 大小:110.31KB
下载 相关 举报
FLASH动作脚本详解.docx_第1页
第1页 / 共138页
FLASH动作脚本详解.docx_第2页
第2页 / 共138页
FLASH动作脚本详解.docx_第3页
第3页 / 共138页
FLASH动作脚本详解.docx_第4页
第4页 / 共138页
FLASH动作脚本详解.docx_第5页
第5页 / 共138页
点击查看更多>>
下载资源
资源描述

FLASH动作脚本详解.docx

《FLASH动作脚本详解.docx》由会员分享,可在线阅读,更多相关《FLASH动作脚本详解.docx(138页珍藏版)》请在冰豆网上搜索。

FLASH动作脚本详解.docx

FLASH动作脚本详解

FLASH动作脚本详解

FLASH动作脚本详解

收藏人:

王咸美

2013-12-03 | 阅:

  转:

  

 | 

  |  分享 

  

FLASH动作脚本详解

 在Flash中,动作脚本的编写,都是在“动作”面板的编辑环境中进行,熟悉“动作”面板是十分必要的。

按【F9】键调出“动作”面板,可以看到“动作”面板的编辑环境由左右两部分组成。

左侧部分又分为上下两个窗口。

左侧的上方是一个“动作”工具箱,单击前面的图标展开每一个条目,可以显示出对应条目下的动作脚本语句元素,双击选中的语句即可将其添加到编辑窗口。

  下方是一个“脚本”导航器。

里面列出了FLA文件中具有关联动作脚本的帧位置和对象;单击脚本导航器中的某一项目,与该项目相关联的脚本则会出现在“脚本”窗口中,并且场景上的播放头也将移到时间轴上的对应位置上。

双击脚本导航器中的某一项,则该脚本会被固定。

  右侧部分是“脚本”编辑窗口,这是添加代码的区域。

可以直接在“脚本”窗口中编辑动作、输入动作参数或删除动作。

也可以双击“动作”工具箱中的某一项或“脚本编辑”窗口上方的【添加脚本】工具,向“脚本”窗口添加动作。

  在“脚本”编辑窗口的上面,有一排工具图标,在编辑脚本的时候,可以方便适时的使用它们的功能。

 

  在使用“动作”面板的时候,可以随时点击“脚本”编辑窗口左侧的箭头按钮,以隐藏或展开左边的窗口。

将左面的窗口隐藏可以使“动作”面板更加简洁,方便脚本的编辑。

  好了,动作面板就介绍这些,有个印象,不要求记住,工具栏上每个工具的作用和功能将在以后的课程中边用边熟悉。

 

如何编写flash中的脚本

 

首先,要知道编写脚本,不需要用户对AS有完全的了解!

  现在要考虑的问题是,如何在你的flash中添加编写脚本?

简单的说,添加脚本可分为两种:

一是把脚本编写在时间轴上面的关键桢上面(注意,必须是关键桢上才可以添加脚本)。

二是把脚本编写在对象身上,比如把脚本直接写在MC(影片剪辑元件的实例)上、按钮上面。

  此外,大家也需要简单理解一下flash是如何执行你编写的脚本的。

当你在时间周的关键桢上添加了脚本,那么当flash运行的时候,它会首先执行这个关键桢上的脚本,然后才会显示这个关键桢上的对象。

  还有一些简单的知识,AS中的对象都包括什么呢?

它可以包含数据,也可以是舞台上的电影剪辑,也可以是舞台上的按钮等。

既然包含了那么多对象,那么每种对象肯定有各自的属性!

比如电影剪辑(movieclip)对象,它的:

属性就有_height(高度),_rotation(旋转),等,这些属性不需要你去特意的记忆,当使用的时候可以随时翻阅脚本字典。

在以后的教程中会陆续给大家介绍一些基础脚本的使用技巧。

  

  二、需要学到的基本AS命令如下:

  stop()、play()、gotoandplay()、gotoandstop()、nextFrame()、prevFrame();、nextScene()、prevScene();、stopAllSounds();按钮的AS编写规则

 

播放

on(release){

_root.mc.play();

}

  如果要在按钮身上写脚本的话,必须使用on(事件){//脚本程序}的格式来写!

上面的脚本作用就是:

当你在这个按钮上按一下鼠标(release事件)的时候,就会执行下面的_root.mc.play();程序,它的意思是让舞台上的mc开始播放!

  6、同理:

咱们选中舞台上的暂停按钮,在它上面输入:

on(release){

_root.mc.stop()

}

  然后依次在快退上输入:

on(release){

_root.mc.prevFrame();//prevFrame表示回到动画的上一桢

}

  在快进的按钮上输入:

on(release){

_root.mc.nextFrame();

}

  在停止的按钮上输入:

on(release){

_root.mc.gotoAndStop

(1);//跳到mc影片的第一桢,并停止播放!

}

二、按钮AS的编写

在flash中的交互功能一般是由按钮来完成的。

掌握按钮的编写规则也是一个闪客的基本技

能。

OK,现在咱们来说说按钮脚本如何编写。

上一讲中提过,AS脚本编写可以写在时间轴的关

键桢上,也可以写在对象本身上面。

按钮也不例外,既可以写在时间轴上,也可以写在按钮

本身上面。

只不过这两种编写规则都要遵循一定的规矩,这是后话。

现在咱们来做一个例子,做一个按钮,这个按钮要实现的功能就是打开一个指定的网页。

(这个例子非常基础,用这个例子来讲解按钮AS两种编写方法。

第一种:

把脚本写在按钮本身。

一、在舞台上绘制一个矩形,选中矩形并按F8,将这个矩形转换成按钮元件。

二、编写动作脚本:

选中按钮,按F9,打开动作面板,在专家模式下输入以下脚本:

on(release){

getURL("

}

现在这个按钮就实现了一个打开网页的功能。

通过例子你应该注意到,按钮的AS书写规则

就是:

on(事件){

//要执行的脚本程序,刚才的例子是用getURL来打开一个网页。

你也可以使用脚本程序来

执行其他功能,例如跳转到某一个桢,或载入外部一个动画文件。

}

大可以看到,其实就一个on语句,这个on语句就是按钮的AS编写规则了。

需要注意

的是on里面的事件,这个事件你可以理解为是鼠标或键盘的动作。

刚才的例子我们使用的

事件是release(按一下鼠标)我现在把常用的按钮事件列出来:

事件名字说明

Press事件发生于鼠标在按钮上方,并按下鼠标

Release发生在按钮上方按下鼠标,接着松开鼠标时。

也就是“按一下”鼠标

Releaseoutside发生于在按钮上方按下鼠标,接着把光标移动到按钮之外,然后松开

鼠标

Rollover当鼠标滑入按钮时

Rollout当鼠标滑出按钮时

Dragover发生于按着鼠标不放,光标滑入按钮

Dragout发生于按着鼠标不放,光标滑出按钮

Keypress发生于用户按下特定的键盘按键时

下面来看看第二种按钮AS的编写方法。

这种方法是把脚本程序写在时间轴上,而不是按钮本身上面。

一、选中按钮,在下面的属性面板中为按钮起一个名字,这里我起了一个bt

二、选中时间轴的第一桢,按F9打开动作面板。

输入如下脚本:

bt.onrelease=function(){

getURL("http:

//"_blank");

};

这种编写AS的方法要遵循的规则就是下面的公式而已:

按钮实例的名字.事件名称=function(){

//要执行的脚本程序。

}

大家只要记住这个公式就可以套用了。

按钮的AS就先将到这了,这个可以算是基本技能了。

希望大家都能掌握。

三、影片剪辑的AS编写

影片剪辑在flash中可以说是使用最多的一种元件了,那么对于它的AS也是不

少。

在讲解之前,我还是要重新说一下电影剪辑AS的编写规则,和上次讲按钮一样,

分为两种,一种是写在电影剪辑本身上,一种是写在时间轴上面。

一、首先我们先来做个简单的小例子。

或许你不用AS就能做出一个小球的移动动画。

但是如果让你用AS来实现小球的移动呢?

下面来看看如何用AS来实现吧。

在这个例子里,你首先会了解到如何在电影剪辑本身上编写AS,以及编写规则。

1、新建立一个影片剪辑元件,里面你就随便画一个圆吧。

之后把这个影片剪辑拖放到

舞台之中(也就是创建一个此影片剪辑的实例)。

2、现在开始编写脚本,选中这个MC,按F9打开动作面板,按照图01显示选择

onClipEvent,之后在显示的事件中选择enterFrame,然后在里面编写脚本如下:

this._x+=5

这个脚本编写之后应该是:

onClipEvent(enterFrame){//enterFrame的意思四以影片帧频不断地触发此动作

this._x+=5;//this代表这个影片剪辑自身。

_x表示影片剪辑的X轴坐标。

}

呵呵,按下你的ctrl+回车测试一下吧,一个简单的移动动画就搞定了。

从这个例子咱们不难看出,如果把AS写在影片剪辑本身上,那么它是有自己的书写格

式的。

正确的书写格式就是:

onClipEvent(事件){

//需要执行的脚本程序

}

这个可以看成是公式,你记住就行了,是写在影片剪辑身上的。

括号里的“事件”其实是

个触发器,当事件发生时,执行该事件后面花括号中的语句。

,具体有哪些事件,我把它们

都列出来。

-load影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。

-unload在从时间轴中删除影片剪辑之后,此动作在第一帧中启动。

处理与Unload影

片剪辑事件关联的动作之前,不向受影响的帧附加任何动作。

-enterFrame以影片帧频不断地触发此动作。

-mouseMove每次移动鼠标时启动此动作。

_xmouse和_ymouse属性用于确定当前鼠

标位置。

-mouseDown当按下鼠标左键时启动此动作。

-mouseUp当释放鼠标左键时启动此动作。

-keyDown当按下某个键时启动此动作。

使用Key.getCode方法获取最近按下的键的

有关信息。

-keyUp当释放某个键时启动此动作。

使用Key.getCode方法获取最近按下的键的有关

信息。

-data当在loadVariables或loadMovie动作中接收数据时启动此动作。

当与

loadVariables动作一起指定时,data事件只发生一次,即加载最后一个变量时。

当与

loadMovie动作一起指定时,获取数据的每一部分时,data事件都重复发生。

了解了事件之后,你可以自己试着修改一下脚本,如果让你们点一下鼠标,舞台上的圆

就移动一下,该怎么做呢?

关于把AS写在影片剪辑本身的例子先讲到这,下面来看看如果把AS写在时间轴上面

的话,应该怎么写。

首先你把刚才的脚本去掉。

然后需要为这个影片剪辑实例起一个名字,比如起名为mc

在选中时间轴的第一桢,打开动作面板,输入以下脚本:

mc.onEnterFrame=function(){

this._x+=5;//你也可以把这句改为mc._x+=5自己想一下为什么。

};

显而易见,在时间轴上的写法就应该套用以下公式:

实例名.事件名称=function(){

//脚本程序

}

需要注意的是,这种写法的事件名称不要忘了在前面加一个on,比如,事件如果是

enterframe的话,你就应该写成onenterframe

下面简单说一下影片剪辑的属性。

比如,影片剪辑有自己的X、Y轴坐标,有自己的透

明度(_alpha),这些都是它的属性。

那么如何使用这些属性呢?

你可以使用“点”语法来对属性进行设置。

把上面的脚本修改一下。

mc.onenterframe=function(){

mc._x+=5;

mc._alpha=random(100);

};

这里我加了一句this._alpha=random(100),它是设置影片剪辑的透明度的,使用的语句

就是_alpha。

后面的random()函数是随机选取一个100以内的数字作为它的透明度。

从这个

句子可以看出,“点”语法使用方法就是:

实例名.属性(mc._alpha),你甚至可以简单理解为

“点”就是“的”,那么this._alpha这句你就可以理解为:

影片剪辑mc的透明度

上面的脚本mc._alpha=random(100)也可以改为_root.mc._alpha=random(100)

那么,你就可以理解为:

舞台上的影片剪辑mc的透明度是随机选择100内的值。

四、动态文本框

一、flash中的动态文本使用方法

在flash中,文本工具提供了三种文本类型。

分别是:

静态文本、动态文本和输

入文本。

下面讲解的内容属于动态文本的AS编写规则。

要创建一个动态文本非常简单,

只需要选中文本工具,然后选择动态文本类型,然后在舞台上拖拽出所需要的

动态文本框就行了

二、如何为动态文本赋值

当在舞台上拖拽出动态文本框之后,可以直接在里面进行文本输入或粘贴外部文

本内

容。

那么用AS如何来对动态文本框赋值呢?

在这里为大家介绍两种方法进行

赋值!

1、使用动态文本的实例名字来赋值

操作步骤:

(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个名字,例如

abc

(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:

abc.text="爱国者安全网"

按下ctrl+回车就可进行测试了。

从这个简单的例子可以知道,如果要用文本实

例名字来进行赋值的话,必须使用以下格式:

动态文本实例的名字.text=”需要

赋值的内容”

2、使用变量来赋值

(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个变量名

3800hk。

(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:

3800hk="欢迎大家来到爱国者安全网学习!

"

不难看出,使用变量赋值更为简单实用!

赋值格式为:

变量名=“赋值的内容”

以上两种赋值方法如果内容过多需要换行的时候,需要使用行用回车符(“\r”

即ASCII

13)分隔!

三、如何载入外部txt文本里的内容

当内容过多的时候,使用上面的方法并不是太好,我们可以使用下面的方法,从

外部获取文本资料内容!

而外部的资料内容就放在一个普通的txt(记事本)文

件中。

具体操作步骤如下:

1、创建一个动态文本实例,并为这个动态文本实例起一个变量名hk

2、选中时间轴的第一桢,打开动作面板,输入以下脚本:

loadVariablesNum("heiying.txt",0);//载入外部名字叫heiying.txt的文本文件,加载

级别为0

3、现在来准备外部的heiying.txt文本文件了。

注意:

要把这个文本文件和你刚

才做的flash文件放在一个文件夹里!

这个txt文件里的资料应该按照如下格式编写:

flash中动态文本变量的名字=这

里就是所需要的资料内容。

对应上面的格式,外部heiying.txt中的内容为:

hk=欢迎大家来到爱国者安全网学习!

最后一点,需要将这个文本文件保存为UTF-8格式。

4、完成以上步骤之后,就可以进行测试了。

下面介绍另外一种载入外部文本资料的方法,并介绍当文本内容过多时候,如

何使用滚

动条组件

(1)创建一个动态文本实例,并并为这个动态文本实例起一个实例名字anquan

(注:

是实例名而不是变量名)起一个变量名为hk

(2)打开flash的组件面板(快捷键ctrl+F7),找到UIScrollBar(滚动条)组

件。

按着它不动,然后拖放此组件至刚才的动态文本实例的右部边缘,如果成

功的话,组件会和文本框结合在一起!

(3)选中舞台第一桢,编写如下脚本:

tt=newLoadVars();//创建一个LoadVars对象的实例,这里的实例名字叫tt

tt.load("heiying.txt");//创建的tt实例需要载入的对象是heiying.txt文本文件。

tt.onLoad=function(s){//开始载入外部文件,具体格式请按照此例格式。

参数s

是指示load操作是否成功完成。

如果完成,那么S的值就为true(真),反之

为false(假)

if(s){

anquan.text=tt.hk;

}//如果载入成功,则anquan文本框中的内容就等于tt.实例中的heiying的内容!

(hk是我们外部文本文件中的变量。

};

(4)至于外部的heiying.txt还可以使用刚才所创建的文本文件,为了测试滚动

条的效

五、影片剪辑的拖拽

在网上经常看到的flash影片中有的对象可以被鼠标进行拖动。

例如有的类似七

巧板的拼图游戏,控制音量的滑杆等,所使用的就是flash中的拖拽动作。

一、拖拽命令详细介绍

1、首先介绍一下开始拖拽命令的详细用法,稍后在后面的例子中进行测试。

命令格式:

StartDrag(要拖动的影片剪辑,[是否锁定到鼠标位置中央,左,

上,右,下])或写为要拖动的影片剪辑.StartDrag([是否锁定到鼠标位置中央,左,上,

右,下])

命令讲解:

在制作动画的过程中,上面两种书写方法可任选一种。

其中[]

内的为可选参数,也就是可以写,也可以不写。

至于左,上,右,下四个参数是

用来控制被拖对象的移动范围。

2、停止拖拽命令讲解

命令格式:

被拖动的影片剪辑实例名.stopDrag()

这样就可以停止对对象的拖拽动作。

二、实例讲解

下面来用一个简单的例子实验拖拽命令。

操作步骤:

1、新建一个flash文档,并在舞台上绘制一个圆形。

选中圆形并按F8,

将此圆形转换为影片剪辑,起名为:

圆。

确定后将会在舞台上创建一个圆的实

例。

2、选中此实例,并按F9打开动作面板。

输入如下脚本:

on(press){

this.startDrag(true);//当鼠标按下(press)之后,这个实例(因为我们把脚本写

在实例本身了,所以这里用this代替影片剪辑实例的名字)可以被拖拽,使用

命令如上面的命令解释。

对于参数的选择方面,这里只填写了锁定到鼠标位置

中央,如果想选不锁定到鼠标位置中央,可以把true改为false。

有兴趣的朋友

可以更改为false看看。

}

on(release){

this.stopDrag();//同样道理,当鼠标释放(release)之后,将停止拖拽动作。

}

3、好了,现在让我们按Ctrl+回车来测试一下吧,你将会看到舞台上的圆

被你的鼠标拖动的效果。

4、OK,通过这个例子我们可以简单的应用拖拽动作了。

现在需要把这个

例子继续完成,还记得上面命令讲解中的左,上,右,下四个控制拖动范围的参

数吗?

现在来制作具有约束拖动范围的效果。

5、现在在舞台上绘制一个200*100大小的矩形,注意只要边框不要填

充。

6、如果我们希望在拖动的时候这个圆只能在矩形内拖动的话,就要先设置

这个矩形的坐标,并记下矩形四个顶点的坐标(这点很重要!

)。

OK,比如,现

在此例子中的矩形的四个顶点分别如上图所示。

那我们要取的四个参数就应该

是:

左=50,上=100,右=250,下=200现在打开动作面板,修

改刚才的脚本如下:

on(press){

this.startDrag(true,50,100,250,200);//这里我们就使用刚才确定好的4个参数。

4个点的参数就对拖动对象实现了一个矩形区域的移动约束!

}

on(release){

this.stopDrag();

}

7、好了,按Ctrl+回车去测试吧!

好了,关于拖拽的讲解先到这里,下面我们来学习如何结合着拖拽动作来检

测对象之间的碰撞!

三、碰撞命令的讲解

命令格式:

目标影片剪辑的实例.hihkest(被拖拽的实例)这个是比较

简单的检测碰撞命令

目标影片剪辑的实例.hihkest(被拖拽实例的X轴坐标,被拖

拽实例的Y轴坐标,对象的矩形区域范围还是对象本身范围)这个是比较复

杂点的检测碰撞命令

命令解释:

以上两个命令都是用来检测碰撞的,可以根据需要选择不同的

命令。

重点解释一下对象的矩形区域范围和对象本身范围(上面的命令中,false

表示对象的矩形区域范围,true表示对象本身的范围)

四、碰撞命令与拖拽命令的结合使用

(一)、下面通过简单的例子来学习碰撞命令(我们先来学习如何检测是否

碰到对象的矩形区域范围)

1、新建一个flash文档,在舞台上绘制一个圆形。

选中圆形并按F8将它

转换为影片剪辑,起名:

圆。

这样就在舞台上创建了一个圆的实例。

2、选中此实例,为它起一个名字,此例起名为:

yuan

3、选择文字工具,并选择文字类型为“动态文本”,在圆的实例下面拖绘出一个

动态文本框。

并起一个变量名为:

hk

4、选中时间轴的第一桢,按F9打开动作面板,输入以下脚本:

_root.onEnterFrame=function(){

//这个是在时间轴上的AS编写规则,解释为舞台上每桢都执行下面的脚本

(onEnterFrame)。

if(_root.yuan.hitTest(_root._xmouse,_root._ymouse,false)){

//根据上面命令的讲解,这个语句就是检测碰撞了。

如果鼠标碰到舞台上

yuan这个实例的矩形区域范围的话,就执行下面的脚本。

hk="接触矩形区域范围";

//动态文本框就显示出“接触矩形区域范围”

}else{

hk="没有接触到矩形区域范围";

//如果鼠标没有碰到舞台上yuan这个实例的矩形区域范围的话,就显示

没有接触到矩形区域范围。

}

};

现在可以按Ctrl+回车去测试我们的成果

(二)、拖拽碰撞检测

现在再来一个例子讲解拖拽碰撞检测,想偷懒的话可以通过修改上面例子的

代码来学习。

1、现在稍微修改一下上面的例子,以便让我们学习拖拽碰撞检测,在上面

例子的舞台上绘制一个矩形,并把这个矩形转换成电影剪辑,起名为:

矩形。

这样就在舞台上又创建了一个矩形的实例,现在为这个矩形实例起一个名为:

juxing。

2、选中这个矩形实例,打开动作面板,输入可以拖拽这个实例的脚本。

如下:

on(press){

this.startDrag(true);

}

on(release){

this.stopDrag();

}

这个脚本就是为了能拖动这个矩形实例。

具体解释请回顾第一个拖动对象例

子的脚本说明。

3、现在来修改脚本,选中时间轴的第一桢,按F9打开动作面板,你将会

看到上个例子的碰撞检测脚本,把它修改为如下脚本:

_root.onEnterFrame=function(){

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1