频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

【荐】用Authorware开发多媒体课件的一点经验

来源: 作者: 出处:巧巧读书 2006-10-17 进入讨论组
访问地址 http://www.qqread.com/authorware/f221703.html

转发朋友(xiaobo)文章 用Authorware开发多媒体课件的一点经验 ---用VB程序做主框架来调用Authorware程序 当整个东西很大的时候, 一般不会做成一个文件, 尤其对于多媒体课件来说, 如果能把各个章节、模块分 成几个独立的文件,那是最好的。

然而如果单单用Authorware的话,总不能尽如人意 的做到这一点。尽管可以用JumpFile、JumpOut等等函 数,也可以用库将资源独立出来,但是在考虑总体结构 的时候,总是存在一些问题。衔接不够紧密,不能使用 公共的模块,几个文件相互通讯困难,而且当框架功能 比较复杂时,Authorware便显的能力不足了。 我在用Authorware做了一段框架之后,想到了一个 方法可以用VB(其它的应该也可以,只不过VB简单一些 而已)来控制我的Authorware程序。我将这个方法用到 我的课件中,实践证明是可行的。 这儿我简要的说一下原理,如果您想进一步了解的 话请到166.111.26.24/YeyaSrc下载原程序。 原理: 1.在VB程序里可以通过发送键盘或鼠标消息来激活 Authorware程序中的交互。比如:在Authorware中定义 一个永久的热区交互,同时设置热键为F12,那么,在 VB程序中先用SetFocus将输入聚焦定位到Authorware窗 口(假设已经知道了Authorware窗口的句柄,如何得到 句柄下面进一步讨论),然后用PostMessage(或者 SendMessage)给它发送一个F12的KeyDown消息。 2.同样Authorware程序也可以给VB程序发消息,让 它响应。(根据我的试验,用MouseDown消息更好一些, 可以发送0,0坐标,甚至负值的坐标的MouseDown消息, 总之是用户不可能点到的地方,在VB程序的Form_MouseDown 事件中再判断一下坐标。) 3.如何传递参数。VB要控制Authorware程序作动作 必然要传递一些参数(当然你可以指定F11翻到下一 页,但是要翻到第5页怎么办?)。 应用程序之间传递参数可以用DDE,但是这太复 杂了。我想到的一个简单的方法是利用dll的全局变量。 dll有自己的数据段,我们可以通过引出函数来实现各 个程序对dll全局数据的访问。一个简单的例子如下: int g_iMsg; //定义一个全局变量。 //通过这个函数设置g_iMsg的值。 extern "C" void FAR PASCAL _expert SetMsg(int val) { g_iMsg=val } //通过这个函数读取g_iMsg的值。 extern "C" int FAR PASCAL _expert GetMsg() { return g_iMsg } 这样两个应用程序便可以通过同一个dll来传递参数-一个 用SetMsg()给g_iMsg赋值,另一个用GetMsg()读出这个值。 (对于传递字符串要复杂一些,但应该也是可以的。) 4.有了传递参数的方法之后,那么用VB程序启动 Authorware程序之前,先在dll中设置初始化的消息号、 VB窗口句柄等等参数;然后当Authorware程序启动,它 首先到dll中读出这些参数,(如果消息号不是初始化的 消息号,说明不是由VB程序启动)保存VB窗口句柄。然后 给用2中说的方法给VB发回应消息,同时传递自己的窗口 句柄等参数。 5.接下去,有了对方的窗口句柄之后,就可以用1、2 中的方法给对方发消息,同时用3的方法传递参数,这样 双方便可以响应对方的消息,并根据参数做相应的动作。

更多文章 更多内容请看多媒体应用解决方案Wlan组网----家庭专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章