当前位置:软件学习 > 其它软件 >>

在Authorware中控制Flash动画

自从Macromedia公司推出了Authorware 6.0以后,Flash动画在Authorware中的调用变得“平民化”了。但不知道大家有没有想过,在Authorware中能否实现对Flash动画的控制呢,如:播放、暂停、快进、快退等?

  在Authorware中要控制Flash动画,主要是通过“SetSpriteProperty(@"SpriteIconTitle", #property, value)”、“GetSpriteProperty(@"SpriteIconTitle", #property)”和“CallSprite(@"SpriteIconTitle", #method [, argument...])”三个函数来实现的:

  SetSpriteProperty主要是将某些属性赋予动画(如:动画的尺寸、位置等);
  GetSpriteProperty主要是获取动画的某些属性(如:旋转角度、播放速度等);
  CallSprite主要是控制动画内在的某些属性(如:播放、暂停等)。

  实例制作

  1、启动Authorware 6.0,新建一个名为“Flash播放器”的文件;选择“Modify”→“Flie”→“Properties…”(Ctrl+Shift+D)打开对话框,修改其中的设置;



  选择“Insert”→“Media”→“Flash…”打开Flash Accset Properties对话框,单击Browse…导入需要的Flash动画(注意Flash动画的背景最好为纯黑色,这样在Authorware中才可以进行透明),此时流程线上会自动添加一个图标,将图标后面的名字去掉重新取名为“Flash动画”,然后选中该图标单击鼠标右键选择“Calculation…”,在弹出的窗口中输入:

  ResizeWindow(320,260)——设定窗口尺寸
  Movable:=FALSE——设置动画在播放时不可移动

  2、在流程线上放置一个交互图标,再在交互图标旁边放置四个计算图标交互类型为“Button”,并分别取名为“播放”、“暂停”、“快进”、“快退”;分别在四个计算图标中输入一下语句:



  在“播放”计算图标输入:
  CallSprite(@"Flash动画", #play)——让动画从当前帧播放。

  在“暂停”计算图标输入:
  CallSprite(@"Flash动画", #stop)——暂停Flash动画。

  在“快进”计算图标输入:
  a:=GetSpriteProperty(@"Flash动画", #frame)——获取当前动画所在的帧CallSprite(@"Flash动画", #gotoFrame, a+40)——在原来的帧数上加40,这样就实现的快进。

  在“快退”计算图标输入:
  a:=GetSpriteProperty(@"Flash动画", #frame)
  CallSprite(@"Flash动画", #gotoFrame, a-40)

  最后按Ctrl+R运行程序可以测试效果。注意:如果发现有时控制失灵,这说明Flash动画当前帧是一个MovieClip对象,它本身就是一个动画,而Authorware不能控制Flash动画场景中MovieClip,所以在制作Flash动画时,尽可能的将所有的动画过程都放在主场景中,少用MovieClip。

  部分函数的用法

  1、位置控制与获取

  SetSpriteProperty(@"FlashMovie", #viewH, parameter)
——控制动画的横坐标的数值,其中FlashMovie表示Flash动画的图标名称, #viewH表示控制方式,parameter表示具体数值,也可以是一个变量。

  SetSpriteProperty(@"FlashMovie", #viewV,parameter )
——控制动画纵坐标的数值,可以实现动画的上下移动。

  Result:=GetIconProperty(@"FlashMovie", #ViewV)
——使变量Result的值等于动画的横坐标的值。

  Result:=GetIconProperty(@"FlashMovie", #viewH)
——使变量Result的值等于动画的纵坐标的值。

  2、角度控制与获取

  SetSpriteProperty(@"FlashMovie", #rotation, parameter)
——控制旋转角度,parameter值在0~360之间。

  Result:=GetIconProperty(@"FlashMovie", #rotation)
——使变量Result的值等于动画的角度值。

  通过Repeat 语句还可以实现动画的旋转:
  Repeat with x= 1 to 180
  SetSpriteProperty(@"FlashMovie", #rotation, x*2)
  End repeat

  3、缩放的控制与获取

  SetSpriteProperty(@"FlashMovie", #viewScale, parameter)——设置缩放值,parameter的值在0~100之间,他表示百分值,如10就是原来动画尺寸的10%。

  Result:=GetIconProperty(@"FlashMovie", #viewScale)
——使变量Result的值等于动画的缩放值。

  4、速度的控制与获取

  SetSpriteProperty(@"gizmos.swf", #playbackMode, #fixed)——设定速度模式,少了该语句下面的改变速度语句将无效。

  SetIconProperty(@"FlashMovie", #fixedRate, integer)
——integer表示动画每秒钟播放的帧数,通过改变它的值可以改变动画的播放速度。

  Result:=GetIconProperty(@"FlashMovie", #fixedRate)
——获取动画当前的播放速度。

  5、声音的控制

  SetIconProperty(@"FlashMovie", #sound, boolean)
——当Boolean的值为“False”时可以停止Flash动画中声音的播放,当值为“True”时可以播放Flash动画中的声音。

  Result:=GetIconProperty(@"FlashMovie", #sound)
——获取声音是否播放,通过数值来表示,为1时表示播放,为0时表示停止。

  CallSprite(@"FlashMovie", #hold)
——停止Flash动画中的画面,但是声音继续播放。

  6、获取Flash动画的路径及名称

  Result:=GetIconProperty(@"FlashMovie", #pathName)
——获取动画的路径和名称,Result值为动画的具体存盘位置和文件名。

  7、获取动画的总帧数和设置动画播放次数

  Result:=GetIconProperty(@"FlashMovie", #frameCount)
——这里所获取的动画总帧数,是指Flash动画主场景的总帧数。

  SetIconProperty(@"FlashMovie", #loop, boolean)
——通过改变boolean的值可以设置动画循环播放的次数。

  8、获取画面质量的值

  Result:=GetIconProperty(@"FlashMovie", #quality)
——Result的值可能为Auto-High、High、Auto-Low和Low。
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,