在VB环境中混编Flash设计交互数据查询界面
2018-02-25员永生
员永生
摘要 Flash绘制的多媒体界面人机交互友好,但Flash本身不能直接存取数据库,本文充分利用VB与Flash双向数据交换的机制,实验提出一个既可利用Flash艮好界面和Action Script语言设计特点,又可发挥VB访问数据库的优点的模式。主要试验VB混编Flash访问SQL2000数据库的模式,在实际的人机交互界面应用实践中取得了较好效费比优势。实际工程应用结果表明该方法不但优化VB界面设计上的短板,可以有效缩短人机界面设计时间,提升解决实际问题和完成课程设计的效率。
【关键词】人机界面 ActionScript VB
在一些中小型项目开发应用上,Flash和VB混编制作的人机交互界面,通常能将二者各自的优点有效地交合起来,就可以制作出独特的界面,许多在VB中不易实现的功能,在Flash中就可以轻易实现,把这些复杂的界面如果混编在VB应用程序中,就可以实现原来认为可能是绘制特别困难的界面工作成为易事。众所周知在虚拟人机界面的建模方面,Flash技术开发界面数据传输实时性好、速度快和界面美观,通过对其与高级程序设计语言的双向交互技术进一步混编融合,在仿真软件界面设计中Flash界面具有的其独特优点,更有利的它是一种矢量格式的文件,可以包含动画、声音和超文本链接,而且文件的体积却很小。本文结合工程项目开发实际,提出了具有应用性和交互功能的VB应用程序混编Flash开发界面技术访问SQL2000数据库的实用界面系统,通过这样的处理可以在较短的时间内开发一些中小应用项目提高工作效率。
1 试验材料和方法
1.1 试验材料
人机界面设计采用是Macromedia FlashMX Professional 2004 Version 7.0.1。专业级程序设计语言采用Micorsoft Visual Basic 6.0中文版。其中三维物件的设计采用GoogleSketchUp专业版6.4.112。
1.2 试验方法
1.2.1 Flash端人机界面设计和动作
具体是在Flash 2004 MX中新建一个Flash文档,可以将FLA源文件保存为mFlashTestVBl名称。在场景上用文本工具建立两个文本框,上部的文本框名称设置为myvar的动态文本(动态文本框用途是显示VB传来的报文),下部的文本框名称设置为mytext的输入文本(输入文本用来发送往VB应用程序的命令)。其中在下面的文本框左侧可以采用工具栏上的矩形工具绘制一个绿色渐变填充效果的按钮,并且将该矩形转换为元件的按钮属性后,设置按钮元件的名称为xbtn,如图1所示。在此按钮元件的第一帧中写入发送给VB应用的动作程序,就可以完成Flash端的设计工作。
1.2.2 VB端应用界面设计和程序设计
通常情况下VB中通过直接添加Flash0cx对象完成任务,但在VB环境下常会发生无法保存项目导致的代码丢失问题,当再次启动工程项目后面临重新编写程序代码的问题,从而延长了开发和解决实际问题的时间。探索动态地将Flash OCX ActiveX对象引用到VB应用程序环境中,既可以不受Flash OCX版本的限制和约束,又可以灵活应用FlashActiveX对象模型。如图2所示。
在應用程序开发之初的操作具体步骤如下:一是先安装Flash MX 2004软件版本或者使用Regsvr32.exe程序对单独的Flash ActiveX控件进行注册;二是在VB应用程序中定义一个事件容器全局变量,定义一个事件名称为ShockwaveFlashl的对象;三是在VB窗体初始化的Load子程序中,对这个对象有关变量进行初始化。在应用程序设计完成后,经测试后合格后可以打包,例如可以采用安装程序制作软件例如InstallShield,主要目的是利用该软件在打包时设置Self-Registered属性为Yes,从而通过打包时的设定,可以作为自动注册Flash ActiveX控件方式。在一台新的计算操作系统中,就免去因为找不到Flash OCXActiveX问题,而导致的程序无法运行的错误发生。
1.2.3 双向交互程中VB端程序设计代码
如图3所示。
1.2.4 双向交互程序设计代码
如图4所示。
其中在图3中的关键字WithEvents说明ShockwaveFlashl是用来响应由Flash OCXActiveX对象触发的事件的对象变量。只有在类模块中才是合法的。使用With Events,可以定义任意个所需的单个变量,但不能用WithEvents创建数组。New和WithEvents不能一起使用。VBControlExtender对象主要被用于动态地使用Add方法将控件添加到Controls集合这样的情况。在这一点上,VBControIExtender对象对开发者是最有用的,因为它提供了一系列通用属性、事件和方法。对象的另一个功能是Obj ectEvent事件,该事件的作用是对向动态添加的控件发出的所有事件进行解释。如图3中首先声明了一个VBControlExtender类型的对象变量,然后在Form Load程序中添加控件的时候设置变量。图4还说明了如何编写Obj ectEvent事件处理程序。
2 结果和讨论
2.1 Flash和VB应用双向交互基础程序运行结果
图5与图4展示了双向互动运行的结果,其中图4利用FSCommand事件,它的主要功能就是利用Flash发来的FSCommand命令,管理动画(全屏)播放,可以隐藏动画菜单,更重要的就是实现了与VB应用程序进行很好的通信。而在VB端程序中,就可以利用Shockware Flash控件的函数SetVariable(Nameas String,Value as String),该函数是对Flash场景中的文本框名为myvar的变量传送数据。ObjectEvent事件来完成接收参数通信过程,从而实现在VB中发送参数信息的功能。
2.2 Flash和VB应用双向交互数据查询推广
图6和图7和图8就是充分利用FSCommand事件,实现Flash和VB交互的应用的一个推广示例。图6就是在Flash中绘制可以触发事件动作的物体,从而触发VB中的Flash对象事件容器中对应的FSCommand事件中相应代码。根据FSCommand事件通过传值方式,传送来两个字符型变量的人机界面中的字符串型参数Command和Args,再通过对字符串中的命令的解析,控制VB应用程序中完成图8所示的自定义的功能。
通过以上实例,就可以轻松实现用户需要的VB文本框中的参数,实时传递到Flash中的过程,Flash有个非常优越的特性就是它的用户接口设计的非常好,相对而言VB有个非常优越的特征就是高效的程序设计能力,是其他高级语言,特別是面向对象程序设计语言都无法比较的。如果在仿真软件的设计中能够将两个融合为一个整体,就能够取得巨大的潜力和效果。
3 结论
主要试验Flash人机界面模型在实际的VB仿真软件的应用实践中取得了性价比优势。结果表明该人机界面不但外观大小可以矢量性变化,而且逼真度很高,性能优异适合各类仿真软件设计的实际应用。
参考文献
[1]衰圆.Flash技术在工程界面设计中的应用[J],科技信息,2006 (03): 22-23.
[2]干建松.基于Flash的世界大学城网站界面设计探讨[J].电脑编程技巧与维护,2013 (24):77-78.
[3]飞尘.Flash与VB的第四通道[J].电脑爱好者,2002 (03): 86-87.
[4]张宪海,吴玲达,王辰.VB中多媒体应用程序设计与实现[J].计算机应用研究,2000,17 (08):88-91.
[5] Macromedia Flash and VB:APotent Combination[M].//www.mindfiresolutions. com.
[6]汤嘉立,姚正军,黄斌等,基于VB和VRML的虚拟仿真实验系统[J]计算机工程与设计,2006,27 (12): 88-91.
[7]张峰.VB与Flash集成开发多媒体应用程序[J].计算机应用研究,2003 (03):103-105.