APP下载

Director与Flash交互结合应用

2013-08-15石家庄工程职业学院霍晓敏

电子世界 2013年4期
关键词:按钮动画多媒体

石家庄工程职业学院 霍晓敏 田 磊

河北正中实验中学 邢宁宁

Director软件和Flash软件是两款强有力的多媒体开发工具,是目前诸多开发多媒体软件产品的首选,尤其是把二者的优势相结合,开发过程可达到事半功倍的效果。在Director平台上开发多媒体软件,尤其是动画,需要运用音频、视频、图片、动画、三维、虚拟现实等多媒体技术。而Flash的特点是:动画是矢量的,其作品放大缩小不失真,但受网络资源的制约一般比较短小;动画具有交互性,用户动作可成为动画的一部分,用户可通过点击、选择等动作,决定动画的运行过程和结果,这是传统动画所无法比拟的;动画有崭新的视觉效果,比传统动画更加灵巧,应该说优缺点并存,如果将其结合,那么就能够进行优势的互补。

下面探讨Director与Flash的交互结合问题。

一、Director与Flash的兼容问题

Director已发布11.5版本,且市场应用也比较广泛,但其Director MX 2004版本(10.0版本)稳定性较高,仍然很受广大多媒体开发者的青睐,应用广泛。另外Flash已发布5.5版本,其集成性更高,并且与Director软件都并入了同一个公司Adobe,对Director软件的支持是越来越好。

当前Director与Flash在开发中存在的兼容问题主要有两个方面:一是当Flash以高版本发布(默认是Flash Player 10版本)动画作品时,如果将该版本发布作品导入到Director中会出现文字显示不正常现象或者是根本就不显示的问题,这就要求Flash作品要以Flash player 7或更低版本(6、5)发布,文字才能够正常显示;二是如果在Flash作品中用了比较高级的效果插件制作出绚丽效果,那么该效果如果Flash以较低版本发布,导入到Director中后,虽然作品的文字能正常显示,但Flash的绚丽效果可能无法显现。这就需要从软件版本和作品稳定性两个方面来综合权衡,要么将Director升级到较高的11或更高的11.5版本,或者是通过其他Flash制作手段改变效果的制作方法,以适应Director软件的要求。

我们知道,Director和Flash软件的运行原理是相似的,都是fps(帧/秒),Flash作品导入Director时,帧数是一致的,在实际开发中又多用于片头播放控制,当Flash片头播放完(Flash作品的最后一帧不能添加停止动作)之后,可使作品延续播放,代码如下:

On exitframe me

If Sprite(FlashSpriteNum).frame

Else

Go to frame +1

End

注:FlashSpriteNum是Flash作品在精灵通道中所在的通道数。

二、Director控制Flash作品

在Director中导入Flash作品,可对作品进行控制,包括播放、暂停、重新播放、声音控制及滑条控制等。具体如下:

(1)在Director中控制Flash演员播放、停止等命令

Sprite(FlashSpriteNum).play()——播放Flash演员

Sprite(FlashSpriteNum).stop()——停止Flash演员的播放

Sprite(FlashSpriteNum).rewind()——Flash演员的重新播放

——原文后面的说明前面已经讲过了

另外,还能够通过更高级的Lingo语言实现对声音的控制及滑条控制,声音控制的简要代码如下:

soundObject=sprite(FlashSpriteN um).newObject("sound","_root")

soundObject.setVolume(soundVolume)

其中,sound和root都是Flash编程中的变量。

滑条控制,控制比较麻烦,可以通过“中华行为库”进行控制,读者可自行下载学习应用。

(2)使用getVariable函数直接获取Flash演员中的值

getVariable(Sprite FlashSpriteNum,“变量名”)——获取位于通道FlashSprite-Num中的Flash演员中变量“变量名”的值。

(3)使用setVariable函数设置Flash演员中的值

setVariable(Sprite FlashSpriteNum,“变量名”,“值”)——将位于通道Flash-SpriteNum中Flash演员的“变量名”变量的值设置为“值”,转换为数学等式就是“变量名=值”。

三、在Flash中应用Director的Lingo语言

Flash作品的按钮美观,在Flash中添加Lingo代码,然后导入到Director作品中,会比直接用Director代码效果好,一般来说,Flash给Director传递消息有两种方法:

(1)在Flash中可以通过Geturl函数直接调用Director的Lingo命令,如鼠标变换:

on(rollover)

{Geturl(“Lingo:cursor 280”);}

on(rollout)

{Geturl(“Lingo:cursor 0”);}

将上面的ActionScript加在Flash按钮上,然后将其发布的作品导入到Director中,即可实现光标的变换。还有,鼠标单击跳转等,具体方法是一样的。

注:标点符号应采用半角符号,在英文状态下输入;双引号内再次使用时,需使用转义字符“”。

(2)在Flash中通过Geturl传送参数给Director,在Director中接受Flash传递的参数,然后执行相应的Lingo命令,如:在Flash的按钮上加入下面的ActionScript:

On(Release)

GetURL("按钮1")

End On

然后,在Director中的moviescript(全局脚本)中使用Geturl函数执行相应的Lingo命令:

on Geturl me,kk(其中kk为Geturl函数的参数)

case kk of

"按钮1":go to frame"Mark1"

"按钮2":go to frame"Mark2"

end case

end Geturl

四、小结

Director与Flash结合应用,既需要考虑版本的兼容性、交互性、稳定性,又需要考虑动画的实用性、美观性,以使作品更加逼真、绚丽。

[1]黎成茂.Director与Flash的交互控制[J].今日科苑,2006(12).

[2]何立峰.Director 11多媒体开发基础与实战[M].北京:清华大学出版社,2009,9.

猜你喜欢

按钮动画多媒体
当你面前有个按钮
借助多媒体探寻有效设问的“四度”
做个动画给你看
动画发展史
我的动画梦
多媒体在《机械制图》课中的应用
动画批评融入动画教育的思考
死循环
多媒体达人炼成记
适切 适时 适度——说说语文课堂的多媒体使用