设为首页收藏本站

skylineglobe技术交流社区

 找回密码
 注册
查看: 241|回复: 0

鼠标移动获取对象及会遇到的问题

[复制链接]

9

主题

9

帖子

76

积分

超级版主

Rank: 8Rank: 8

积分
76
发表于 2019-9-9 19:33:55 | 显示全部楼层 |阅读模式
我们通常获取对象会单击获取,但有的时候需要在鼠标移动的时候获取对象,并让对象高亮显示。
首先我们要绑定鼠标移动事件,OnFrame事件,sgworld.AttachEvent('OnFrame',你的事件函数名称);
function OnFrameGetObj(){
//先获取鼠标信息
   var mouseInfo = sgworld.Window.GetMouseInfo();
//将鼠标信息转换为三维世界的坐标
   var pos = sgworld.Window.PixelToWorld(mouseInfo.X,mouseInfo.Y);
   //pos三维信息的结果,并能获取到当前鼠标所在的位置的对象的ObjectID
   if(pos.ObjectID){
     alert(sgworld.ProjectTree.GetObject(pos.ObjectID).ObjectType);
//根据弹出的类型进行对象的确认,调用不同对象类型的接口。
   }
}
  
有时在PixelToWorld方法的第三个参数有人也会写,这第三个参数是过滤对象的,如果你写的类型和你想要捕获的对象类型不符的话会出现捕获不到的情况。所以第三个参数谨慎使用,一般可以不写,而用判断来判断。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋| SkylineGlobe ( 京ICP备09046777号 )   

GMT+8, 2019-10-20 20:34 , Processed in 0.088147 second(s), 21 queries .

Powered by Skyline中国社区!

© 2013 skylineglobe.cn.

快速回复 返回顶部 返回列表