会员ID: 密码: 注册
加入收藏夹 设为首页 加入桌面 网站地图
行业资讯业内动态解决方案活动专区技术文献
应用专题视景仿真虚拟医疗驾驶模拟军事仿真
周边产品力反馈数据头盔动作捕捉 立体 投影
引擎专区Uniyt3DVirToolsWebMaxVR-Platform
企业名录北京 上海深圳 广州厦门 重庆大连 郑州
Web3d作品地产开发园区景观交通工具 网友习作
       第三维度-打造最专业的虚拟现实行业门户     虚拟现实行业领先资讯平台:
首页 >> 行业资讯 >> VR百科
Flash与webmax的交互控制 教程源码
(2010-6-11 21:08:56) 查看评论()
分享:
    来源:上海创图网络科技发展有限公司
    来源: 上海创图网络科技发展有限公司

    该部分讲述如何进行Flashwebmax的通信,准确地说是Flashjavascript的通信

 

    引入Flash使得 webmax设计更加美观。

 

    一、重点的函数介绍:

 

    getURL---FlashactionScript的脚本函数。它可以调用新的页面,也可以调用页面的script代码。

 

    调用页面的script函数代码的格式:getURL"javascript:调用的函数名(‘参数’)");

 

    下面以一个简单的例子说明一下流程:

 

    实现单击flash按钮,html弹出一个提示框。

 

    1、在flash 做一个空电影clip,再做一个按钮。将它们调入场景中,并选上按钮按F9添加代码:

 

    onrelease

 

    {

         getURL("javascriptFlashPlayerOver('orange')");

 

    //这个命令用来调用html页面的javascript的函数 FlashPlayerOver(orange)

        }

 

   2、在html页面里面加入flash如下:  

 

   可以嵌入一个table的列单元。

 

   3、在html页面中添加javascript代码,即添加函数FlashPlayerOver(flashname)

 

   function FlashPlayerOver(flashname)

   {

    alert("you are a "+flashname);

   }

 

   浏览html页面,首次会弹出flash的验证,设置为允许就ok

 

   二、按键控制

 

  该部分讲述如何通过键盘进行操作。

 

  1、要设置html响应的按键的操作函数为我们自己定义的函数。

 

    在函数SceneIsDown()中声明我们要自己定义的函数,添加如下代码:

 

   document.onkeyup=KeyUpEvent;   //当一个按键弹起时执行自定义函数 KeyUpEvent()

   document.onkeydown=KeyDownEent;  //当一个按键按下时执行自定义函数 KeyDownEvent()

 

  2、实现自己定义的函数

 

   function KeyDownEent()//响应键盘的键按下

   {

   switch(event.keyCode)   //event.keyCode 返回一个数字用来对应键盘上的按键

   {

 

        case 87:                        //判断keyCode   87对应的是键盘上的  W

         VGS2.PlayerGoForward();

 

        //press key w W Go  forward   此函数为WEBMAX函数更多信息请参刊数手册

 

   break;

 

   default:

 

   break;       

   }

 

   }

 

   function KeyUpEvent()/, /响应键盘的键抬起

   {

 

   switch(event.keyCode)   //event.keyCode 返回一个数字用来对应键盘上的按键

   {

   case 87:                    //判断keyCode   87对应的是键盘上的  W

   VGS2.PlayerStop();    //when key w W  up  stop Go left  此函数为WEBMAX函数更多信息请参刊数手册

   break;               

   default:

   break;       

   }

 

   }

 

    三、 鼠标控制模型的实现

 

    该部分分为4个小部分,介绍了如何在webmax里面实现鼠标的响应事件:

 

    鼠标按下与鼠标抬起,鼠标移动,鼠标双击,模型组的鼠标等事件。

 

    1 单击模型事件

 

    首先在 function SceneIsDown()里面(函数位置没有规定)添加

 

    VGS2.SetModelMouseHint(“modelName”, bFlag)

 

    函数说明:设置模型是否响应鼠标事件,包括鼠标停靠与单击。

 

    参数:

 

    Ø          modelName        模型的名称。

 

    Ø         bFlag                   模型是否响应鼠标事件。1为启用,0为禁用。

 

    例:

 

             VGS2.SetModelMouseHint(“modename”, 1);

 

    接着设置鼠标的单击回调函数。

 

    VGS2.EnableMouseUpCallback();

 

      VGS2.EnableMouseDownCallback();

 

            ⑵新建鼠标单击处理函数

 

           function VGSMouseUp( LocH, LocV, type, modelUnderLoc , ID1, ID2)

 

           函数说明:处理鼠标单击弹起的响应的函数

 

           参数:LocH,LocV---鼠标单击上时的平面坐标

 

                 Type----值为10,表示是否单击上了

 

                      modelUnderLoc---表示单击上的模型的名字

 

          例子:

 

    function VGSMouseUp( LocH, LocV, type, modelUnderLoc , ID1, ID2)

 

           {     

 

    if (type == 1)//表示单击上时

 

              switch (modelUnderLoc)//根据模型的名字来识别

 

                {

 

         Case modename: 

 

    处理的方法 break;

 

           }

 

            }else //没有单击上时。

 

            {

 

        //别的操作

 

    }

 

    }

 

    function VGSMouseDown( LocH, LocV, type, modelUnderLoc , ID1, ID2);

 

    //处理鼠标按钮下时的响应的动作函数,与VGSMouseUp(LocH, LocV, type, modelUnderLoc , ID1, ID2)函数类似。

 

    2、鼠标移动事件

 

    首先在 function SceneIsDown()里面加:

 

    设置模型是否响应鼠标事件,包括鼠标停靠与单击。

 

    VGS2.SetModelMouseHintmodename,1);

 

    接着设置鼠标移动回调函数:VGS2.EnableMouseMoveCallback();

 

    新建鼠标移动处理函数

 

        function function VGSMouseMove(LocH, LocV, type, modelUnderLoc )

 

     {

 

     if (type == 1)//表示移动上模型时

 

            {

 

                 switch (modelUnderLoc)//根据模型的名字来识别

 

               {

 

          Case  modename: 

 

     处理的方法 break;

 

        }

 

       }else //表示没有移动物体时。

 

       {

 

        别的操作。

 

     }

 

     }

 

     3、鼠标双击事件

 

    首先在function SceneIsDown()里面加:

 

    设置模型是否响应鼠标事件,包括鼠标停靠与单击。

 

    VGS2.SetModelMouseHintmodename,1);

 

    接着设置鼠标双击回调函数:

 

    VGS2.EnableMouseDBClickCallback();

 

    新建鼠标的双击函数

 

    function VGSMouseDBClick( LocH, LocV, type, modelUnderLoc )

 

    {

 

    if (type == 1)//表示双击上模型时

 

      {

 

           switch (modelUnderLoc)//根据模型的名字来识别

 

          {

 

         Case modename: 

 

    处理的方法 break;

 

        }

   

      }else

 

      {

 

    }

 

    }

 

    4、模型组的鼠标事件

 

    如果处理的是一群实体的话呢,比如我们想鼠标单击某一模型时,多个模型就运动

 

    或变化。为了简便地操作,我们可以把相关联的模型构成一个组一起操作。

 

    首先先建一个模型组

 

    VGS2. CreateModelGroup(modelGroupName);

 

    例子:VGS2.CreateModelGroup("HONGTASHAN");

 

    // HONGTASHAN是模型组的名称

 

    再往模型组里面添加模型对象。

 

    使用的函数:

 

    AddModelToModelGroup(modelGroupName, modelName)

 

    增加模型到模型组。

 

    参数:

 

    modelGroupName         模型组对象的名称

 

    modelName                 模型的名称。

 

    SetModelMouseHintType(modelName, type)

 

    函数说明:设置模型是否响应鼠标事件的方式,有两种方式可供选择,一种是以模型为单元响应鼠标事件;一种是以模型所在的模型组为单元响应鼠标事件。譬如设置BOX1当鼠标移上时变为红色,选中后变为绿色,当设置响应类型为[模型]响应方式效果正常;但如果设置为[模型组]响应方式时,当鼠标移上BOX1时,BOX1所在的ModelGroup中的所有物体均会变成红色,选中后均会变成绿色。

 

    参数:

 

    Ø         sModelName        模型的名称。

 

    Ø         type                            模型鼠标响应事件的类型。

 

    0-[模型]响应方式

 

    1-[模型组]响应方式

 

    例:

 

    VGS2.SetModelMouseHintType("HONGTASHAN"+i, 1);

 

    下面的例子实现设置新建一个模型组,并且对每一个添加入模型组的模型设置鼠标移动上变化的颜色与透明度,以及设置模型对鼠标事件的响应方式。

 

    for(var i=1;i<=3;i++)

 

           {

 

         //把模型对象HONGTASHANi添加到模型组"HONGTASHAN"

 

             VGS2.AddModelToModelGroup("HONGTASHAN", "HONGTASHAN"+i); 

 

                 //设置模型响应单击事件

 

             VGS2.SetModelMouseHint("HONGTASHAN"+i, 1);

 

         //设置模型当鼠标单击与停靠时变化的颜色与透明度

 

             VGS2.SetModelMouseColor("HONGTASHAN"+i, 255, 0, 0, 200, 255, 0, 0, 200);

 

     VGS2.SetModelMouseHintType("HONGTASHAN"+i, 1);

 

             }

 

    实现模型组的单击事件与鼠标移动事件的过程跟单个模型是一样的。

 

关键字:Flash,webmax,交互控制,创图
上一篇:webmax系列教程1:导航图制作下一篇:Anark Studio快捷键的使用参考
您可能还需要关注以下资讯:
基于VIRTOOLS的虚拟太阳系的设计与实现
away3d+Flash Builder平台搭建
FLASH3D基本算法入门
Alternativa3D教程1:Hello, Alternativa3D
免费下载 Alternativa3D
Adobe公布Flash未来发展蓝图
Adobe承诺继续投资Flash技术 欲掀起页游新高潮
away3D操纵三维物体详解
Webmax3将于年底推出 又小又快优势突出
Flash11将至GPU加速游戏性能增千倍
3D Systems V-Flash  桌面型 快速成型 三维打印机
V-Flash
商家:四维宇宙
TOP↑
CapBayer数字博物馆文物展示方案基于GIS系统的三维战场环境仿真(三维电子沙盘)
天津星际空间-车载移动激光扫描与数据处理增强现实技术助阵七代凯美瑞上市发布会
核电三维仿真设备监控与维护培训系统作战指挥系统设计与虚拟仿真
      应用·方案
    CapBayer数字博物馆文物展示方
    基于GIS系统的三维战场环境仿真(三
    天津星际空间-车载移动激光扫描与数据
    增强现实技术助阵七代凯美瑞上市发布会
    核电三维仿真设备监控与维护培训系统
    作战指挥系统设计与虚拟仿真
    井下三维虚拟采矿系统
    百纳九洲—三维数字城管解决方案
    分布式对抗模拟仿真虚拟现实系统
    交互式动态航空模拟仿真展示平台VIS
      周边·产品
SimuWorks潜艇作虚拟现实综合仿真研究系统
SimuWorks潜艇仿真
商家:恒和大风软件
COMSOL Multiphysics V4.1多物理场虚拟仿真分析平台
Multiphysics V4.1
商家:中仿
EAGLE模拟高尔夫
EAGLE模拟高尔夫
商家:万延世纪
VisBox-4K SRX/DLA 背投沉浸式3D立体显示系统
VisBox-4K背投立体
商家:凌捷
SKYGOLF室内模拟高尔夫系统
SKYGOLF模拟高尔夫
商家:SkyGolf飞行船企业
FARO® Photon120/20 大空间激光三维扫描仪
FARO® Photon三维扫描
商家:法如国际贸易
MIAS3D三维运动捕捉图像解析系统
MIAS3D运动解析
商家:现代富博
大视电子MPG10X系列多通道超高清弧形纯硬件边缘融合机
MPG10X超高清边缘融合
商家:大视
Zalman Trimon ZM-M190 3D立体显示
Trimon ZM-M190
商家:四维宇宙
Zalman Trimon ZM-M220W
Zalman M220W
商家:四维宇宙
      资源·教程
 ·WebGL教程16:高光贴图
 ·立体影片Peschke Macros
 ·3D立体影片下载:夏季海德堡
 ·左右并排3D立体影片下载:夏日狂欢
 ·3D立体影片下载 老虎 Tiger
 ·乐龙(RaLC)物流仿真软件试用版
 ·主动式频闪快门3D立体显示技术原理解
 ·行业知识—虚拟制造定义
 ·行业知识—虚拟制造(VMS)
 ·学习WebGL第1课:绘制三角形和一
友情链接 关于本站咨询策划行业推广广告服务免责声明网站建设联系我们融资计划
第三维度 版权所有     ICP证号:吉ICP备09001338
Copyright © 2008-2010 Beijing The third dimension Inc. All Rights Reserved.
电子邮箱:d3dweb@163.com QQ:594353024 496466882
服务电话:010- 52420589 13716635312