搜档网
当前位置:搜档网 › Flash交互式动画的基本知识概览

Flash交互式动画的基本知识概览

Flash交互式动画的基本知识概览(一)
[ 作者:dw007 转贴自:IT书屋 点击数:202 更新时间:2004-5-30 文章录入:luokang ]

第一章:交互性动画的基本设计知识
在Flash4.0中建立一个交互式动画的基本知识概览
Flash作为目前正大红大紫网页动画设计工具,正越来越受到广大网友的喜爱,互连网上用Flash制作的站点也是越来越多,其神奇的表现令人流连忘返,叹为观止。特别是其交互性设计,更令网页多了几分体贴与灵气。访问者可以通过键盘或鼠标操作从一个动画跳转到另一处,可进行移动对象、输入信息或进行其他形式的交互操作。
设计交互式动画主要就是通过设置当某一事件发生时所应执行的Aciton。比如用户用鼠标按一个按钮或在键盘上按下一个键时,将激活一个对应的Action操作。
以下内容是笔者结合自己的使用整理的一些资料,不是"一步一步"式的教程,仅向你提供一种"参考性"的资料。若发现其中有错误,还请不吝赐教,以利大家共同提高。

第一章:交互性动画的基本设计知识

Actions的设置:该设置是在一个按钮属性或帧属性对话框中的Actions标签中进行的。简单的交互性动画,如停止或开始顺序播放等操作仅需要极简单的设置。而如果要设置复杂一点的操作就要用到少量的表达式;制作非常复杂的交互式动画则必需熟悉编程语言,下面是定义一个动作事件的简单介绍。

一、定义一个按钮事件的基本过程:

当鼠标在一个按钮上按下或经过按钮上方时,产生一个响应而不影响其他的按钮响应。
在进一步学习之前我们先介绍一下什么是:Instance,如果我们将某个常用对象加到Symbol库中,每当从中引用一次,被引用的这一次就是一个Instance,如果说Symbol是一个子程序的话,那么Instance就是一次调用。
下面是制作一个按钮交互的具体步骤:

1、 从库中选择一个按钮Instance,然后选择Modify\Instance。或者双击这个按钮Instance。
2、 选择Actions标签。
3、 单击+号,然后从弹出菜单中选择一个说明。如果该该标签不可用,说明你选择的不是一个按钮Instance,你可以选择Definition标签,使被选择的这个Instance具有类似按钮的属性,但这种方式可能不能指定按钮的状态。
4、 当你选择了一个Statement,Flash自动插入一个On/End On语句,并设置Release为默认的按钮状态。 任何时候你都可以通过选择On MouseEvent来插入一个On/End On语句。在Parameters(参数)格中,On (Release)突出显示,选择一个激活动作的鼠标或键盘事件。如图(1)所示。

下面是每个选项的具体响应含意:
Press:当指针经过一个按钮并按下鼠标左按钮时激活。
Releas

e:当指针在按钮上,按下的鼠标按钮被释放时激活。
Release Outside:当鼠标指针在按钮范围之外被按下后释放时激活。
Roll Over:当鼠标指针从按钮上方经过时激活。
Roll Out:当鼠标指针经过按钮区域之外时激活。
Drag Over:当按住鼠标从按钮对象中向外拖曳出来后不要松开鼠标重新返回按钮,事件将被激活,就如同拉开枪栓再打回去,子弹被激活一般。
Drag Out:当从按钮对象中向外拖曳出对象范围时,事件将被激活。
Key Press:当指定的键盘按键被按下时就激活事件。

5、单击+号按钮并从打开的菜单中选择一个需要的Statement,系统会给出一些默认的内容,如果比较熟悉的话还可以输入一些参数加以控制。

测试按钮,具体步骤如下 :
在Control菜单中选择Enable Buttons 。然后选择Test Movie。

二、为某一帧指定一个动作

为某一帧指定一个动作,当运行到这一关键帧的时候就激活事件。比如建立一个循环,你可以给20帧指定一个动作,当运行到20帧时就跳转到第10帧并播放。在不同的层中使用这一方式是非常好的主意,这种类型的帧上会显示一个字母"a"。

分配一个动作给关键帧的具体操作步骤如下:
1、 在时间轴上选择要赋予动作的关键帧,并选择Modify菜单中的Frame。或双击一个关键帧。如果该关键帧没有被选中,动作将被赋予之前的关键帧。
2、 选中Actions标签,单击+号,然后从弹出菜单中选择一个Statement。如图(2),

3、 可以设置当运行到此帧时的更多响应。Flash按照顺序执行这些设置的Statement,用上下按钮可以改变其顺序。

在场景中测试一个帧动作:在运行这个动画之前,在Control菜单中选择 Enable Frame Actions 。

三、编辑动作:

使用Instance属性对话框中Actions标签,还可以改变Action的设置内容。具体方法如下:
改变设置的Statement的顺序:选中一个动作,然后使用上下箭头按钮即可改变其执行时的次序。
删除一个动作:选中该动作,按"-"号按钮。
改变一个动作的设置参数:只需输入一个新的参数。

四、停止播放所有的声音:

使用Stop All Sounds语句停止播放音频而不打断时间轴上动画上的运行,这不同于简单的调节音量。Stop All Sounds影响动画中所有声音的效果。你可以将Stop All Sounds加到一个按钮中,以便用户自己来停止网页动画中声音的播放。

五、 跳到另一个帧或场景:

使用Go To语句跳转到动画中另一个指定的帧或场景。你会得到一个下面选项:停在跳转到的帧呢?还是运行后返回从此帧继续运行。默认的设置是跳转运行后停止该动画。Go To语句有下面一些参数:
1、 Scene:指定一个目的场景,如果你已经选择或

命名了一个场景,你可以指定其中的一个具体的帧。如果你选择了下一个或前一个场景,则自动跳转到这些场景的第一帧。
2、 Frame:指定当前或选择的某个场景中的一个帧。你可以输入一个帧的帧号码、标题、或包含其号码或标题的表达式;可以指定前一帧或后一帧。例如下面的表达式就表示跳转到包含动作的帧之前的五帧处:Go to and Stop(currentframe + 5)。
3、 Go To and Play:跳转到指定的帧并播放,如果该选项未被选中则停止在该帧。


六、跳转到另一个URL:

使用Get URL语句来装入另一个URL, 或传送变量到另一个应用的URL。要测试这个动作,文件必须在指定的位置,并且绝对路径可以可靠的连接,例如: https://www.sodocs.net/doc/0213770896.html,。该语句有下面几个参数:
URL:指定一个URL地址。
Window:指定将被装入的窗口或HTML帧。你可以输入其名称、指定窗口、帧、或表达式,你可以从下面选择这些保留字。
①self:在当前窗口的当前帧。
②blank:指定一个新的窗口。
③parent:指定当前帧的父帧。
④top:指定当前窗口的上一层的帧。
Variables:阻止或允许使用Get或Post来传送变量,或着不传送任何变量。Get方式追加这个变量在URL的最后,一般用来传送较小的变量;而Post则可以传送较长的字符串变量。

七、监测某帧是否下载:

使用framesloaded属性(包含IF语句)或If Frame Is Loaded语句来监测指定帧中的内容在本地机上是否可用,利用这一条件来启动一个简短等待动画, 免得访客等得心焦。二者的主要区别是If (_framesloaded)语句引导你加入一个Else或Else If 语句到你的动作事件中,非常快捷。而If Frame Is Loaded 语句引导你在语句中指定一个帧的数值。利用这两个特点制作一个loading……是非常合适的。下面是一些具体应用的简略介绍:
1、 当所有的帧都已下载并开始播放使用If Frame Is Loaded建立一个动作事件跳出动画循环。例如一个循环的动画只有两帧,需要下面的语句才能在第二帧下载后条件满足时正确跳出:
If (framesloaded)
Go to and Play (3)
Else
Go to and Play (1)
End If

2、如果一个30帧的动画下载完毕之前循环播放一个只一两帧的动画,当下载完毕时需要跳出,需要下面的语句才能正确匹配到第一帧:
If Frame Is Loaded (30)
Go to and play (3)
End If Frame Is Loaded

当我们插入一个If Frame is Loaded语句时,Flash会自动在结尾处插入一个 End If Frame is Loaded作为结束标记。在上述循环播放的小动画的第二帧应匹配一个动作事件,重新回到第一帧,以实现循环:
Go to and play (1)
当在If Frame is Loaded语句中指定的帧成功装入时,动画就会播放完第二帧后从第三帧接着开始继续播放,

而退出循环。这种技巧一般被用在下载一个大的图片或声音文件时被采用。If Frame Is Loaded语句有下面几个参数:
Frame: 指定你希望在下一个语句执行之前装到本地机的帧的号码。
Scene:包含指定帧的场景。

八、装入或退出附加的动画:

使用Load Movie和Unload Movie 语句来演播一个附加的动画而不关闭Flash Player 。通常,Flash Player显示单个Flash Player movie (SWF文件),Load Movie 可以让你不必装入另一个HTML文档就能一次显示多个动画文件。Unload Movie则移走一个先前被Load Movie装入的动画文件。在下面几种情况下你可以使用Load Movie:
1、 在播放一系列动画文件的时候,在每一个动画的后面都使用一Load Movie语句来装入紧接着的一个动画,来提高速度。
2、 在开发一个能够让用户在多个不同的SWF文件之间选择的分支界面时。
3、 在设计一个导航界面时,通过提前装入,你可以实现页面过渡的平滑效果,使用户不必过多的等待。
Load Movie和Unload Movie有下面几个参数:
Action:识别是否装入或不装一个动画,或从一个文本装入变量到激活的动画。
URL:为SWF文件指定一个绝对或相对路径的地址来装入,用于Flash Player或测试一个Flash动画。所有Swf文件必需保存在同一个文件夹中。
Location:为Load Movie或 Unload Movie语句指定一个层或目标对象。在Flash Player中,动画文件依据被装入的顺序分配一个数字。首先被装入的动画在最底层,其帧频、背景色、帧尺寸等被其他动画所共同使用。你可以在已经装入了Swf文件的层中追加动画,后继者将取代已经存在的动画。如果你使用了Load Variables,已经激活的动画不会被取代,但变量将会更新为新值。如果你在首层装入了一个新的动画,其他各层的动画将被移出,首层则被新的动画所代替。
Target:指定你想被装入的动画代替的动画片段,如果你使用了Target,而且其将继承该动画片段的位置、旋转、比例等具体属性。
Load Movie和Unload Movie 语句不能在编辑模式下运行。Use Control > Test Movie可以来验证其是否能正常工作,而且必须路径正确。如果是绝对URL路径,使用File > Publish Preview 来测试,且网络连接存在并已激活。

九、调整动画的显示质量:

使用 Toggle High Quality语句来控制anti-aliasing。可以控制动画的显示速度和质量。Toggle High Quality影响所有的动画播放效果。Toggle High Quality 分配一个按钮给访问者调整回复的动画质量。下面的动作用第一个按钮关闭anti-aliasing。第二个按钮反之。
On(Press)
Toggle high quality
End On

十、发送信息到动画主程序:

使用FS Command语句来传送一个信息到任何一个Flash Player中的动画程序。如果你不

熟悉javascript或building projectors ,你将不得不使用FS Command。FS Command有两个参数,Command和Argument :
在Command对话框中输入你要传送的字串,如果该字串需要参数,在Arguments对话框中输入即可。
在Flash动画中加入FS Command语句,可实现在需要的地方打开一个对话框。
FS Command ("messagebox", "This is a message box invoked from within Flash.")
并可以使用表达式和参数:
FS Command ("messagebox", "Hello, " & name & ", welcome to our website!")

下面是一些特别有用的FS Command 语句,可以实现对动画的灵活控制:

命令语句 参数 功能
Quit 无 关闭放映
Fullscreen True/False 设置是否全屏幕播放
Allowscale True/False False设置动画下载总是完全且图像不变形。
Showmenu True/False True允许使用右击菜单,False隐藏菜单条。
Exec Path to application 从放映机中启动一个应用程序。


十一、控制其他动画和动画片段

使用Tell Target语句控制用load Movie语句装入的动画或动画片段,Tell Target语句非常适合导航控制,给按钮分配一个Tell Target语句可以在场景中控制动画的停止或播放。同样可以跳转到某个具体动画片段中的某一帧。Tell Target 只有一个参数Target,指定将被控制的时间轴。

十二、理解多时间轴

当一个动画在Flash Player中重放时,或许会出现多个时间轴,每个Flash动画都有一条主时间轴,每个动画片段的调用又包含其内部的一个另外的时间轴。也有可能来自Load movie语句。每个时间轴独立运行,但也可以被其他时间轴控制,比如主时间轴上的一个按钮可以控制其他时间轴的动作;同样,另一个时间轴上的帧动作事件可以跳转到其他的场景或帧中。


十三、说明目标

在表达式编辑器有一个用来插入Target名称的Target按钮,有些情形下你点击该按钮,就会出现一些可供使用的动画片段的显示区域,双击所需要的片段的名称,恰当的信息就会自动输入到Target区域中。有时你希望定为目标的时间轴不在窗口或路径上,你必需输入服务器的绝对路径。Flash的时间轴也有层的概念,在不同的层中指定目标,在顶层象文件夹路径或绝对URL路径那样为目标引用指定一个路径。

十四、复制或移走一个动画片段

使用Duplicate Movie Clip语句,当一个动画正在播放时,可以建立一个该动画片段的调用,并且不管从原始动画片段运行到何时调用,复制出的动画片段都从第一帧开始播放。要删除这样的一个调用则使用Remove Movie Clip语句。这两个语句有下面几个主要参数:
1、 Action:设置使用哪一个语句来对动画片段进行操作。
2、 Target:指定要复制或删除的动画片段。
3、 New Name:给复制出的片段一个名称。
4、

Depth:决定复制出的对象的显示深度,每一个复制出的对象都在原始动画片段的上方。
5、 Remove:删除复制的动画片段,但对父动画没有影响。

十五、可拖动的动画片段

使用Drag Movie Clip语句可以让动画片段播放时被允许移动,该语句可以设置开始或停止拖动操作,直到被Stop Drag制止或另一个动画被允许拖动,因为同时只能有一个动画被允许拖动。Drag Movie Clip有下面几个参数:
1、Start:设置拖动操作开始。
2、Target:指定要拖动的动画片段。
3、Constrain to Rectangle:设置允许拖动的区域。
4、Lock Mouse to Center:设置动画片段的中心直接在用户鼠标指针处。当此项未被选取时,拖动时会保持一个相对的偏移位置。
例如:这个事件强迫这个动画片段在一个200 x 200 pixel的框中 :
On (Press, Release, Outside)
Start Drag ("target_item", L=100, T=100, R=300, B=300, lockcenter)
End On

十六、改变动画片段的位置和显示外观

使用Set Property 语句来改变一个动画片段的位置、比率、透明度、旋转等显示属性。Set Property有下面一些参数:
1、Set:指定要改变的性质。
2、X Position 和Y Position:指定相对于父动画片段的偏移量。
3、X Scale和Y Scale:指定水平和垂直方向的比率。
4、Alpha:设置透明度。
5、Visibility:指定动画是否可见。
6、Rotation:设置一个动画的旋转,可以输入旋转的度数。
7、Target:指定你要设置的动画片段。
8、Value:指定数值给设定的属性。例如下面的语句设置一个动画的Y position为 150:

On (Release)
Set Property ("target_item", Y Position) = 150
End On

十七、为一个事件做注释

使用Comment语句可以为你的帧或按钮动作添加一个注释,方便跟踪管理,也有利于别人读懂你的思路。

十八、设置和确认变量

变量是一个信息的容器,容器永远不变,但内容可以改变,通过改变一个动画的变量你可以记录和保存一些用户的信息,并且可以改变动画的播放,或判断一些条件的真假。变量可以是字符,比如你可以将一个URL、用户名、数值结果、某些内容出现的次数、或一个按钮被按下的情况保存其中。每个动画或动画片段都有自己对应的变量及变量值。在Flash中不必特意指定变量的类型是数值型还是字符型。

十九、设置和确认变量

变量是一个信息的容器,容器永远不变,但内容可以改变,通过改变一个动画的变量你可以记录和保存一些用户的信息,并且可以改变动画的播放,或判断一些条件的真假。变量可以是字符,比如你可以将一个URL、用户名、数值结果、某些内容出现的次数、或一个按钮被按下的情况保存其中。每个动画或动画片段都有自己对应的变

量及变量值。在Flash中不必特意指定变量的类型是数值型还是字符型。

二十、在指定的动画或动画片段中识别变量

在指定的动画中识别一个变量,使用名称及其动画的路径,用冒号分开路径与变量名称。例如下面这个语句标识指定动画中的Timer变量:/Explosion:Timer

二一、建立一个有条件的动作事件

使用If 语句来确定条件是否满足。例如你可以检查用户在文本框中输入的数值是否太大或太小,并显示一个提示信息,使用if语句是十分有效的,你应该能够熟练使用。其语法规则与一般编程语言大同小异,下面的例子有助于你更好的理解,不再详述:
If (name eq "Gary")
Go to and Play ("Gary's World", 1)
Else if (name eq "David")
Go to and Play ("David's World", 1)
Else if (name eq "Peter")
Go to and Play ("Peter's World", 1)
Else
Go to and Play ("Welcome", 1)
End If

二二、循环动作

使用Loop语句来设置一个当条件为真时的循环动作。比如设置一个计数器不断的计数来形成条件,当条件满足或计数器为0就跳出从循环下面的第一帧开始执行。例如下面的循环可以运行10次 :
Set Variable: "Index" = 1
Loop While (Index <= 10)
Set Property ("target_item", Y position) = 150
Set Variable: "Index" = Index +1
End Loop

二三、重新使用一个动作

你可以设计让多个按钮或帧使用同一个动作,这要比在按钮或帧之间使用复制和粘贴要好。要达到此目的需要使用Call语句来运行一个动作。指定一个将被调用的帧,如果,不能被使用,可能是名称错误或没有被装到本地机上, Flash 会忽略Call语句。遇到这种情况可以使用前面介绍过的framesloaded。
当指定的帧运行结束,控制权又返回发出call调用的语句。

二四、使用表达式编辑器

表达式编辑器可以从Actions标签中打开,帮助你精确的编辑一个表达式及其参数。如果你要建立一个表达式,单击该按钮然后在区域中选择Expression Editor 。Editor.

双击operators中你需要的功能 ,其中包含的一些信息你可以用适当的内容来代替。例如要得到一个动画片段的水平位置的数值:
1、 双击选项中的 GetProperty,直到其出现在对话框上方的文本框中。
2、 高亮显示普通条件Target并单击Target。
3、 从列表中选择希望的动画片段。
4、 选择普通条件的property,并在Properties菜单中双击对应项目,希望的数值提交给在X position中。
5、 在Expression Editor中单击OK。
如果你得不到足够的正确的信息,或使用了不适当的语法,该表达式编辑器显示一个警告信息。另外,新的表达式将出现在语句中。



相关主题