Director与Flash交互结合应用
2013-08-15石家庄工程职业学院霍晓敏
石家庄工程职业学院 霍晓敏 田 磊
河北正中实验中学 邢宁宁
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作品,可对作品进行控制,包括播放、暂停、重新播放、声音控制及滑条控制等。具体如下: (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作品的按钮美观,在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.二、Director控制Flash作品
三、在Flash中应用Director的Lingo语言
四、小结