首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> VR百科>>正文
Flash与webmax的交互控制 教程源码
2010年6月11日    评论:    分享:

    来源:上海创图网络科技发展有限公司

    来源: 上海创图网络科技发展有限公司

    该部分讲述如何进行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);

 

             }

 

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

 

标签:Flashwebmax交互控制创图
上一篇:webmax系列教程1:导航图制作
下一篇:Anark Studio快捷键的使用参考
网友评论:Flash与webmax的交互控制 教程源码
评论
留名: 验证码:
您可能还需要关注一下内容:
·联手开拓虚拟现实市场 创图与曼恒走向深度合作
·away3d+Flash Builder平台搭建
·FLASH3D基本算法入门
·Alternativa3D教程1:Hello, Alternativa3D
·免费下载 Alternativa3D
·Adobe公布Flash未来发展蓝图
·Adobe承诺继续投资Flash技术 欲掀起页游新高潮
·Sandy3D中文类简介
·away3D操纵三维物体详解
·Webmax3将于年底推出 又小又快优势突出
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号