网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 网管学堂 > 多媒体 > Authorware > 用Authorware开发多媒体课件的经验  

用Authorware开发多媒体课件的经验

2007-09-22  作者:bitsCN整理  来源:网管学堂  点评 投稿 收藏

  用VB程序做主框架来调用Authorware程序,当整个东西很大的时候, 一般不会做成一个文件,尤其对于多媒体课件来说, 如果能把各个章节、模块分成几个独立的文件,那是最好的。然而如果单单用Authorware的话,总不能尽如人意的做到这一点。尽管可以用JumpFile、JumpOut等等函数,也可以用库将资源独立出来,但是在考虑总体结构的时候,总是存在一些问题。衔接不够紧密,不能使用公共的模块,几个文件相互通讯困难,而且当框架功能比较复杂时,Authorware便显的能力不足了。 网管下载dl.bitscn.com

  我在用Authorware做了一段框架之后,想到了一个方法可以用VB(其它的应该也可以,只不过VB简单一些而已)来控制我的Authorware程序。我将这个方法用到我的课件中,实践证明是可行的。 网管网www.bitscn.com

  这儿我简要的说一下原理,如果您想进一步了解的话请到166.111.26.24/YeyaSrc下载原程序。

网管u家u.bitsCN.com

  原理:

网管论坛bbs_bitsCN_com

  1.在VB程序里可以通过发送键盘或鼠标消息来激活Authorware程序中的交互。比如:在Authorware中定义一个永久的热区交互,同时设置热键为F12,那么,在VB程序中先用SetFocus将输入聚焦定位到Authorware窗口(假设已经知道了Authorware窗口的句柄,如何得到句柄下面进一步讨论),然后用PostMessage(或者SendMessage)给它发送一个F12的KeyDown消息。

网管网www.bitscn.com

  2.同样Authorware程序也可以给VB程序发消息,让它响应。(根据我的试验,用MouseDown消息更好一些,可以发送0,0坐标,甚至负值的坐标的MouseDown消息,总之是用户不可能点到的地方,在VB程序的Form_MouseDown事件中再判断一下坐标。)

网管u家u.bitscn@com

  3.如何传递参数。VB要控制Authorware程序作动作必然要传递一些参数(当然你可以指定F11翻到下一页,但是要翻到第5页怎么办?)。 网管网www.bitscn.com

  应用程序之间传递参数可以用DDE,但是这太复杂了。我想到的一个简单的方法是利用dll的全局变量。dll有自己的数据段,我们可以通过引出函数来实现各个程序对dll全局数据的访问。一个简单的例子如下:

网管论坛bbs_bitsCN_com

  int g_iMsg;     //定义一个全局变量。 网管u家u.bitscn@com

  //通过这个函数设置g_iMsg的值。

中国网管论坛bbs.bitsCN.com

  extern \"C\" void FAR PASCAL _expert SetMsg(int val) 网管下载dl.bitscn.com

  { 网管bitscn_com

  g_iMsg=val

网管联盟bitsCN@com

  } 网管u家u.bitsCN.com

  //通过这个函数读取g_iMsg的值。

网管网www.bitscn.com

  extern \"C\" int FAR PASCAL _expert GetMsg() 网管联盟bitsCN@com

  { 中国网管联盟bitsCN.com

  return g_iMsg

中国网管联盟bitsCN.com

  }

网管u家u.bitscn@com

  这样两个应用程序便可以通过同一个dll来传递参数-一个用SetMsg()给g_iMsg赋值,另一个用GetMsg()读出这个值。 网管联盟bitsCN@com

  (对于传递字符串要复杂一些,但应该也是可以的。)

网管论坛bbs_bitsCN_com

  4.有了传递参数的方法之后,那么用VB程序启动Authorware程序之前,先在dll中设置初始化的消息号、VB窗口句柄等等参数;然后当Authorware程序启动,它首先到dll中读出这些参数,(如果消息号不是初始化的消息号,说明不是由VB程序启动)保存VB窗口句柄。然后用2中说的方法给VB发回应消息,同时传递自己的窗口句柄等参数。 网管u家u.bitsCN.com

  5.接下去,有了对方的窗口句柄之后,就可以用1、2中的方法给对方发消息,同时用3的方法传递参数,这样双方便可以响应对方的消息,并根据参数做相应的动作。

网管u家u.bitsCN.com


TAGs   经验   课件   多媒体   开发   程序   Authorware   VB   可以   消息      
 上一篇:课件中图片的自由拖动与放大   下一篇:认识Authorware 交互功能
用Authorware开发多媒体课件的经验 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: