Authorwar多媒体课件制作经验 - 重庆动画公司 动画制作 三维3d设计 首选【重庆汉蜀动画有限公司】
Originality | July 05

入门Authorwar多媒体课件制作的经验


用Authorwar多媒体课件制作一段框架之后,想到一个方法可以用VB其它应该也可以,只不过VB简单一些而已)来控制我Authorwar顺序。将这个方法用到课件中,实践证明是可行的

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

原理:

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

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

3.如何传送参数。VB要控制Authorwar多媒体课件制作顺序作动作必定要传送一些参数(当然你可以指定F11翻到下一页,但是要翻到第5页怎么办?

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

intg_iMsg    //定义一个全局变量。

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

extern"C"voidFA RPA SCA L_expertSetMsgintval

{

g_iMsg=val

}

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

extern"C"intFA RPA SCA L_expertGetMsg

{

returng_iMsg

}

这样两个应用顺序便可以通过同一个dll来传递参数-一个用SetMsg给g_iMsg赋值,另一个用GetMsg读出这个值。

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

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

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


 


渝ICP备19013396号-2