自从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。