首 页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在线 >> 技术·开发 >> WebMax >> 正文
Webmax开发设计说明书
[ 作者:佚名     来源:Web3D在线     点击数:     更新时间:2008-1-8     字体:

    

1.3.7   Flashwebmax的交互控制

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

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

    重点的函数介绍:

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

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

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

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

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

onrelease

{
         getURL("javascript:FlashPlayerOver('orange')");

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

html页面里面加入flash如下:

   

  

  

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

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

function FlashPlayerOver(flashname)
{
 alert("you are a "+flashname);
}

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

1.3.8   按键控制

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

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

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

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

  实现自己定义的函数

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;       
}

}

1.3.9   鼠标控制模型的实现

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

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

1.3.9.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)函数类似。

1.3.9.2                                  鼠标移动事件

      首先在 function SceneIsDown()里面加:

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

VGS2.SetModelMouseHintmodename,1);

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

      新建鼠标移动处理函数

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

{

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

            {

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

               {

          Case  modename

处理的方法 break;

        }

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

       {

        别的操作。

}

}

1.3.9.3                                  鼠标双击事件

首先在function SceneIsDown()里面加:

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

VGS2.SetModelMouseHintmodename,1);

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

VGS2.EnableMouseDBClickCallback();

       新建鼠标的双击函数

        function VGSMouseDBClick( LocH, LocV, type, modelUnderLoc )

{

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

      {

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

          {

         Case modename: 

处理的方法 break;

    }

  }else

  {

}

}

1.3.9.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);

         }

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

上一页  [1] [2] [3] [4] 


  • 上一篇文章: Webmax简易入门操作手册(官方)

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

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

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