首 页Web3D在线作品技术·开发3D资源免费发布作品

   相 关 文 章
   最新5篇推荐文章  
推荐 三维展示要将B2B带出“冬天”
推荐 Google社交服务网站Lively上线 W...
推荐 Webmax开发设计说明书
推荐 Unity3d重生-让PC装上MAC OS X 1...
推荐 Webmax简易入门操作手册(官方)
   最新5篇热点文章  
固顶 Turntool官方中文对照操作手册
普通 Web3D在线将在2008年10月15日发布...
普通 Converse3D虚拟现实制作大赛将至...
普通 全3D网页游戏《Runescape》面世
普通 3D虚拟世界逐“利”场
您的 位置: Web3D在线 >> 技术·开发 >> 综合教材 >> 正文
VRPIE_SDK 简明操作手册
[ 作者:TigeRun     来源:Web3D在线     点击数:     更新时间:2008-2-26     字体:

    

目录

    1 简介
    2 函数手册
        2.1 VRPIE-SDK接口详解
        2.2 VRP脚本参数手册
        2.3 VRPIE-SDK的消息回调详解
    3 教程
        3.1 快速建立一个使用VRPIE-SDK的例子
        3.2 高级应用,VRPIE-SDK和数据库的联合连接

简介


    相对于一个月前发布的VRPIE插件版本,中视典的VRPIE针对最近部分用户提出的需求,开发了带编程接口的VRPIE插件(下面简称VRPIE-SDK)。 通过VRPIE-SDK,嵌入ie浏览器的VRPIE插件就可以和ie页面进行交互,或者说,通过javascript就能控制VRPIE插件所装载的场景了。

    我们可以先通过一个例子(点击查看)建立对VRPIE-SDK基本的印象,后面我们会就具体操作步骤进行详细讲解。( 相信看过这个例子后,做过网页编程的通过查看页面源代码就能看到很多调用细节了)
    这个例程演示了VRPIE-SDK的几个重要功能:
        1 使用VRPIE在IE浏览器中显示三维场景。
        2 通过VRPIE-SDK提供的接口实现html的按钮等界面元素来控制vrp窗口中的场景。
        3 通过VRPIE-SDK提供的事件回调机制将vrp窗口中执行的操作,比如点击鼠标等送到外部ie浏览器中。使得IE页面中的javascript可以获得和使用这些信息。

        附案例截图,点击可查看大图
        

    如果你有使用flash或者其他ie插件接口的开发经验,从这个例子中,你就能了解很多VRPIE-SDK的调用方式。后面我们会根据例子讲解具体的使用,重点在介绍VRPIE-SDK的接口和调用方法,关于html/javascript语法和VRP-Builder的基本操作,请查阅相关文档,此处不作重点介绍。

    返回顶层目录

VRPIE-SDK接口详解


    VRPIE-SDK是工作在VRP内核基础上通过开发和开放得到的。因此,VRPIE-SDK虽然只提供了有限的函数,但通过和VRP脚本引擎的结合使用,却可以实现强大的控制和丰富的效果

    如同简介里所介绍的,VRPIE-SDK主要完成的三个功能为:
        1 使用VRPIE在IE浏览器中显示三维场景。
        2 通过VRPIE-SDK提供的接口实现html的按钮等界面元素来控制vrp窗口中的场景。
        3 通过VRPIE-SDK提供的事件回调机制将vrp窗口中执行的操作,比如点击鼠标等送到外部ie浏览器中。使得IE页面中的javascript可以获得和使用这些信息。

    对于VRPIE-SDK的使用,主要注意以下几个参数和接口的使用或者调用:

    1 参数 VrpieFile 。这个是指嵌入IE的vrpie插件要装在web vrp文件的名称。
    在上面的网页示例中可以看到如下的html代码:



    这句话也演示了如何将vrpie插件嵌入ie中。

    2 ExecuteVrpScript 函数。该函数将执行一条由其参数指定的VRP脚本函数。并将执行得到的结果返回回来。带一个字符串类型参数,表示要执行的VRPIE-SDK的脚本命令(关于脚本命令,可参考下一个章节VRP脚本参数手册);返回值也是字符串类型,表示该脚本命令执行的结果,具体意义有当前执行的脚本命令而定(可参考 VRP脚本参数手册 中相关内容)。
    下面是示例中的相关javascript代码:
function run_lines(str_lines)
{
window.Vrpie1.ExecuteVrpScript(str_lines);
}
    示例页面中对这个函数进行了封装,并且没有关心返回值。

function on_radio_clicked(obj)
{
run_lines("设置物体的状态值, level[0], "+ obj.value);
run_lines("执行内部函数, update_level_btns");
}

    演示了使用上面封装的函数。

    3 OnVrpEvent函数。事件回调机制的主要函数。在插件中触发相应的事件后,会通过这个函数送出来。带五个参数。第一个是消息id,含义可参考 VRPIE-SDK的消息回调详解 。第二,三,四,五是对应消息传出的附加参数。不一定都使用,但通常的,第二个参数p1经常是当前操作目标模型的名称。
    在示例中,你可以看到如下代码:




{
if(msg <= 307)
{
var str1 = window.Vrpie1.GetVrpMsgDesc(msg,p1,p2,p3,p4);
window.textarea.value = str1 + "\r\n" + window.textarea.value;
}
}
    在这段代码中,GetVrpMsgDesc 也是VRPIE插件自带的函数,使用内部方法将消息格式化,可以用来调试。

    4 FromLongAddressToString 辅助函数。 在脚本回调函数中,所有的字符串都传递的是字符串首地址(指针),为了便于检验,我们提供了一个内部测试的函数FromLongAddressToString。它是将一个数字(字符串地址)转化为字符串。

    返回顶层目录

VRP脚本参数手册


    VRP中支持上百条的单独功能的脚本函数,这些脚本还可以任意组合,实现更复杂的功能,使得我们控制起来相当强大和方便。限于篇幅,这里不在一一介绍 。查看具体的脚本参数手册,可参考 脚本手册(pdf文档)。 脚本函数的使用,单看文档是远远不够的,它们都可以直接在VRP-Builder中测试熟悉。只有熟练掌握了VRP的脚本含义,才能真正实现自己想要的功能。

    下图是VRP-Builder中脚本编辑器的截图,可以作为测试和熟悉VRP脚本的的工具。
        


    返回顶层目录

VRPIE-SDK的消息回调详解


    VRP的内核采用了消息机制来处理很多事情。作为VRPIE-SDK的主要功能之一,VRPIE-SDK也开放了部分消息供用户在回调函数中使用。下面是这些回调消息的信息:         
MSG IDMSGMSG DESCP1P2P3P4
103 VMSG_MOUSE_DBCLICK 在VRP场景中鼠标左键双击事件 操作模型名称 操作模型的选中状态  
200 VMSG_HOT_MODEL_LBTN_DOWN 鼠标在热点模型上左键按下 操作模型名称   
201 VMSG_HOT_MODEL_LBTN_UP 鼠标在热点模型上左键弹起 操作模型名称   
202 VMSG_HOT_MODEL_MBTN_DOWN 鼠标在热点模型上中键按下 操作模型名称   
203VMSG_HOT_MODEL_MBTN_UP 鼠标在热点模型上中键弹起 操作模型名称   
204 VMSG_HOT_MODEL_RBTN_DOWN 鼠标在热点模型上右键按下 操作模型名称   
205 VMSG_HOT_MODEL_RBTN_UP 鼠标在热点模型上右键弹起 操作模型名称   
206 VMSG_HOT_MODEL_MOUSE_ENTER 鼠标移入热点模型范围 操作模型名称   
207 VMSG_HOT_MODEL_MOUSE_LEAVE 鼠标移出热点模型范围 操作模型名称   
300 VMSG_HOT_PANEL_LBTN_DOWN 鼠标在热点面板上左键按下 操作模型名称   
301 VMSG_HOT_PANEL_LBTN_UP 鼠标在热点面板上左键弹起 操作模型名称   
302 VMSG_HOT_PANEL_MBTN_DOWN 鼠标在热点面板上中键按下 操作模型名称   
303 VMSG_HOT_PANEL_MBTN_UP 鼠标在热点面板上中键弹起 操作模型名称   
304 VMSG_HOT_PANEL_RBTN_DOWN 鼠标在热点面板上右键按下 操作模型名称   
305 VMSG_HOT_PANEL_RBTN_UP 鼠标在热点面板上右键弹起 操作模型名称   
306 VMSG_HOT_PANEL_MOUSE_ENTER 鼠标移入热点面板范围 操作模型名称   
307 VMSG_HOT_PANEL_MOUSE_LEAVE 鼠标移出热点面板范围 操作模型名称   



    返回顶层目录

快速建立一个使用VRPIE-SDK的例子:


    通过上面的介绍,大家应该对VRPIE-SDK有一个初步的印象了。下面我们将从头到尾建立一个VRPIE-SDK的应用(示例所用应用,都可以在此下载),来熟悉和上面的函数。

    1.先决条件。
        要创建一个使用VRPIE-SDK的例子,你需要有支持输出VRPIE-SDK文件的VRP-Builder软件;如果你想在互联网观看网上效果,您还需要支持www服务的一个网络服务器空间;当然,要建模的话,max软件也是少不了的。

    2.创建一个简单的VRP场景文件
        为了简便起见,我们准备了一个简单的场景文件demo.vrp,需要的可以点击下载。场景在vrp中表现如下:(点击查看大图)
             


    3、将VRP文件导出为可网络发布的WEB VRP文件
        选择工具栏上的按钮 输出为可网络发布的vrpie按钮,点击。
        在弹出的目录选择窗口选择你要保存的VRPIE文件的路径。点击OK(确定)。
        

        在弹出的VRPIE文件选项上设置文件参数,和上一个版本不同的是,这次多了2个选项。
        VRPIE的扩展标志,由于某些客户没有自己的网络服务器,在将vrpie文件上传至共享空间后,由于服务器下载文件名的限制,vrpie不能被识别和下载。因此,我们在这个版本中允许客户指定vrpie的扩展名(比如说指定为.txt .htm 等等),从而避开这个限制。
        同时注意勾选上 支持js/vbs网页脚本开发接口
        

        点击ok(确定),此时就会在你指定的目录产生几个文件和一个目录了。
        

        此时双击vrpie_file.htm, 也能看到刚才的三维场景在ie中显示了。这可不是二维的平面图了,实实在在的三维可漫游的场景啊。
        

        察看刚才htm文件代码,如下





vrp_init_pars("vrpie_file.vrpie.jpg");




        呵呵,关键就在vrp_init_pars("vrpie_file.vrpie.jpg");和文件http://www.vrpie.com/vrpie/player/ocx.js了.从ocx.js中可以看到vrp_init_pars的定义
function vrp_init_pars(filename)
{
document.write("");
document.write("");
document.write("
");
}


    4、对上例进行改进,添加html界面控制元素
        下面,我们将对这个案例进行改进,来熟悉ExecuteVrpScript函数的使用。在vrpie_file.htm 同级目录下,新建一个空的htm文件vrpie_file2.htm(可在同级目录找到),类似flash的处理将ocx控件加入,同时加入2个按钮,准备调用 。页面代码准备如下:








onclick="window.Vrpie1.ExecuteVrpScript('显示隐藏物体, 1, 楼5, 1')">
onclick="window.Vrpie1.ExecuteVrpScript('显示隐藏物体, 1, 楼5, 0')" >



    在本地或者网络打开文件,点击按扭看看,是否能够操作模型了呢?
        
    显示隐藏物体, 1, 楼5, 0 / 显示隐藏物体, 1, 楼5, 1 ,是VRP中的脚本函数. 意思是显示/隐藏模型,该模型的名字是 楼5

    5、添加事件回调函数,让VRP中的操作可以送到IE中来。
    下面,我们在vrpie_file2.htm上继续添加代码,使其能够获得并处理VRPIE控件的消息(这些代码可在同级目录vrpie_file3.htm中找到)。









{
if(msg == 103)
{
alert("你刚才点了模型 <"+ window.Vrpie1.FromLongAddressToString(p1) +"> 哟!"); }
}







    在场景中点击模型后效果如下:
        

 


  • 上一篇文章: 用“环境贴图”方法再现《特洛伊》大场景

  • 下一篇文章: 没有了
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部

      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
      联 盟 网 站 申请加入联盟 more...
    点击申请
     
     设为首页 | 加入收藏 | 关于本站 | 版权申明 | 联系站长 | 友情链接 | 在线留言 

    Copyright© 2006-2008 Web3Donline.com .All Rights Reserved 沪ICP备07014855号