日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
摘要:director和flash两种软件都是在多媒体系统开发领域常用的工具,但是二者在开发过程中如何更好地协调配合使用却是一个值得关注的问题。本文介绍了两种多媒体开发工具director和flash的发展历史,讨论了二者在交互控制、数据库绑定等方面的差异。
关键词:director flash 多媒体 系统
0 引言
director、flash这两种多媒体开发工具都是macromedia公司在多媒体开发领域的拳头产品,它们与另一种开发工具authoware并称为“多媒体三剑客”,然而authoware由于其本身交互语言功能的限制,以及对视频、音频等多媒体素材的兼容上容易出错,当macromedia公司被adobe收购之后,一直没有官方的新版本出现,逐渐被冷落。而director与flash却依然如日中天,2008年初adobe director11与adobe shockwave player上市,而flash更是有:adobe flash 8 、adobe flashcs3、以及adobe flash player8、9等多个版本在adobe名下发布。本文将对director 和flash 在开发应用上的异同点进行探讨,使得用户能够充分发挥二者的优势并加以合理利用,从而提高多媒体系统开发的效率。
1 两种开发工具的开发方向
当前,许多/network/">网络平台,而要制作表现力更加强大、信息量更加丰富的桌面多媒体系统,还是要用director来实现,director凭借其海量的xtras外挂程序的支持,优秀的内存管理调度能力,以及对3d资源的强力整合,能够非常轻松地实现复杂效果的设计过程,然而,director的缺点也很明显,它所生成的发布文件以及所需的shockwave播放插件本身要比flash大得多,因此虽然它支持网络发布的模式,但是它并不适合像flash所创建的系统那样以b/s模式的姿态出现,受限于网络带宽,没有用户愿意花费大量的时间去在浏览器上等待一个未知数。故而director更多的面向的是本地的产品展示或者c/s模式的多媒体系统客户端。
2 交互控制
2.1 lingo、javascript与actionscript director和flash都提供了功能强大的交互语言,director中可以采用lingo与javascript(director10后新增)两种语言,flash中只提供了actionscript语言。相比较,director的兼容性更好些,给用户的选择余地更多,因为javascript拥有更多的用户基础,很多人在网站开发等相关项目中都或多或少地接触过它。而lingo语言是一个典型的事件驱动编程语言,非常适合于多媒体交互系统的开发,但是它的用户基础相对薄弱,一般只有涉及director多媒体开发才会使用到,所以可能一些用户使用起来需要一定的时间来上手。对于flash中的actionscript语言,最早出现在flash 3中的actionscript 1.0语法冗长,主要的应用是围绕着帧的导航和鼠标的交互.这种状况一直保持到flash 5. 到flash 5版本时actionscript已经很象javascript了。它提供了很强的功能和为变量的传输提供了点语法。actionscript同时也变成了一种prototyped(原型)语言,允许类似于在javscript中的简单的oop功能。actionscript的最新版本是actionscript3.0,它不再只局限于制作flash特效,更体现在对基于flex的ria(富互联网应用程序)系统的支持上,这些都使得actionscript的地位与日俱增。
2.2 director与flash之间的信息传递方式 无论是director中的lingo,或是flash中的actionscript,它们都提供了与对方的接口,实现director和flash的相互控制。
2.2.1 flash to director的信息传递
①在flash中可以通过geturl函数直接调用director的lingo命令,如
on(rollover)
{geturl(“lingo:cursor?280“);}
on(rollout)
{geturl(“lingo:cursor?0“);}
将上面的actionscript加在flash按钮上,然后将其导入到director中就能实现光标的变换了。
②使用flash中的event命令,如:geturl?(“event:readtxt,\”\”,\”dairy\””)
上面的actionscript可以执行director中的影片脚本中的readtxt函数,并传递“”和“dairy”两个参数给readtxt函数。
2.2.2 director to flash的信息传递:
①在director中控制flash演员播放、停止等命令
sprite(flashspritenum).play()——播放flash演员
sprite(flashspritenum).stop()——停止flash演员的播放
类似的函数有rewind()、gotoframe()等等,其详细的用法见前面的“控制flash”。
②使用getvariable函数来直接获取flash演员中的值
getvariable(sprite flashspritenum,“password”)
——获取位于通道flashspritenum中的flash演员中变量password的值
③使用setvariable函数来设置flash演员中的值
setvariable(sprite flashspritenum,“password”,“admin”)
——将位于通道flashspritenum中flash演员中的password变量的值设置为admin
3 数据库绑定
客观地说,无论flash还是director它们对数据库的支持都十分有限, 以下对他们的连接数据库方式进行简要探讨:
3.1 director的数据库常用连接方式:
3.1.1 使用列表(list) 每种语言都有存储一组数据的能力。在有些语言中,称为数组。在director的lingo里,叫做列表(list)。列表可以分成两类:线性列表(1inear list)和属性列表(property list)。线性列表是指包含在单个变量里的一串数字、字符串或数据。如包含人名/电话号码的线性列表例子:
mylist=[["张三","85667788"],["李四","56453336"],["王二","86879996"]]
属性列表里的每个元素都包含一个属性名称和属性值。下面是一个典型的属性列表:
mylist=[#name:"张三",#phone:"85667788",#employesince:2000]
在lingo中尽管没有专门的数据库操作指令,但对于列表,lingo提供了管理和操纵列表数据的命令。它们能在列表的开始或特定位置添加数据在列表的末尾增添数据从列表中删除数据从列表的特定位置访问数据编辑列表中存储的数据对列表中的数据排序计算列表中的数据项的数量。因此,利用列表 list可以模拟实现数据库的功能。
下一篇:医院管理系统中的信息安全探讨