在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)打开对话框,修改其中的设置;



在Authorware中控制Flash动画




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



  ResizeWindow(320,260)——设定窗口尺寸

  Movable:=FALSE——设置动画在播放时不可移动



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



在Authorware中控制Flash动画




  在“播放”计算图标输入:

  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。