帮同事写了一段测试代码,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MoveObject</title> <script type = "text/javascript" language = "javascript">
function Init() {
try{
var SGWorld = new CreateSGObj();
SGWorld.Open("C:\\Users\\Administrator\\Desktop\\a.FLY");
}
catch (e)
{ }
} function MoveObject()
{
var SGWorld = new CreateSGObj();
SGWorld.AttachEvent("OnLButtonDown", OnLButtonDown);
SGWorld.AttachEvent("OnRButtonDown", OnRButtonDown);
} var sobj = null;
function OnLButtonDown(Flags, X, Y)
{
var SGWorld = CreateSGObj();
var CursorCoord = SGWorld.Window.pixelToWorld(X, Y, 1);//第三个参数设置为1,表示鼠标点选对象的时候,只选择Model类型的对象
if (CursorCoord.ObjectID == null || CursorCoord.ObjectID=="")
return false;
var obj = SGWorld.Creator.GetObject(CursorCoord.ObjectID);
var opos = obj.Position.Copy();
var campos = SGWorld.Navigate.GetPosition(3);
var tpos = obj.Position.Move(100, campos.Yaw+90, 0);//将当前模型对象位置向右侧平移100米
tpos.Yaw = opos.Yaw;
obj.Position = tpos;
} function OnRButtonDown(Flags, X, Y) {
var SGWorld = CreateSGObj();
var CursorCoord = SGWorld.Window.pixelToWorld(X, Y, 1);
if (CursorCoord.ObjectID == null || CursorCoord.ObjectID == "")
return false;
var obj = SGWorld.Creator.GetObject(CursorCoord.ObjectID);
var opos = obj.Position.Copy();
var campos = SGWorld.Navigate.GetPosition(3);
var tpos = obj.Position.Move(100, campos.Yaw - 90, 0);//将当前模型对象位置向左侧平移100米
tpos.Yaw = opos.Yaw;
obj.Position = tpos;
return true;
} // SGWorld701
function CreateSGObj() {
try {
var obj = document.getElementById("SGWorld");
if (obj == null) {
obj = document.createElement('object');
obj.setAttribute("name", "SGWorld");
obj.setAttribute("id", "SGWorld");
obj.style.height = "1px";
obj.style.width = "1px";
obj.setAttribute("classid", "CLSID:3A4F919C-65A8-11D5-85C1-0001023952C1");
document.body.appendChild(obj);
}
return obj;
}
catch (e) {
alert(e);
}
}
</script>
</head>
<body onload="Init();" >
<table style="margin: 0px; border: 0px;">
<tr>
<td colspan="4">
<input id="Button1" type="button" value="button" onclick="MoveObject()" />
</td>
</tr>
</table>
<object id="TerraExplorerInformationWindow" classid="CLSID:3a4f9193-65a8-11d5-85c1-0001023952c1" style="width: 19%; height: 560px;"></object>
<object id="TerraExplorer3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" style="width: 80%; height: 560px;"></object>
</body>
</html>

SkylineGlobe7.0.1版本 通过鼠标左右平移模型对象的更多相关文章

  1. SkylineGlobe7.0.1版本 支持SQLite(*.sqlite;*.db)数据库

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...

  2. SkylineGlobe7.0.1版本 主页面如何和Popup里面的嵌入页面相互传值

    不想多说废话,直接看代码吧!(支持IE和Chrome) 主页面: function ShowPanel() { var sg = CreateSGObj(); var pp = sg.Creator. ...

  3. [0] 解决版本冲突-使用SVN主干与分支功能

    解决版本冲突-使用SVN主干与分支功能 1  前言 大多数产品开发存在这样一个生命周期:编码.测试.发布,然后不断重复.通常是这样的开发步骤: 1)    开发人员开发完毕某一版本(如版本A)功能后, ...

  4. Nacos 发布 v0.8.0 Pre-GA版本,安全稳定上生产?

    服务注册和服务配置开源项目 Nacos 本周发布了 v0.8.0 Pre-GA 版本,作为开源项目生命周期中的里程碑版本之一,v0.8.0 Pre-GA版本支持登录.命名空间.Metrics监控(对接 ...

  5. 记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比

    一.MongoDB3.0.x的版本特性(相对于MongoDB2.6及以下): 增加了wiredtiger引擎: 开源的存储引擎: 支持多核CPU.充分利用内存/芯片级别缓存(注:10月14日刚刚发布的 ...

  6. MongoDBV3.0.7版本(shard+replica)集群的搭建及验证

    集群的模块介绍: 从MongoDB官方给的集群架构了解,整个集群主要有4个模块:Config Server.mongs. shard.replica set: Config Server:用来存放集群 ...

  7. 【大数据】Linux下Storm(0.9版本以上)的环境配置和小Demo

    一.引言: 在storm发布到0.9.x以后,配置storm将会变得简单很多,也就是只需要配置zookeeper和storm即可,而不再需要配置zeromq和jzmq,由于网上面的storm配置绝大部 ...

  8. 【原】webapp开发中兼容Android4.0以下版本的css hack

    话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了 ...

  9. HBase1.0以上版本的API改变

    HBase1.0以上版本已经废弃了 HTableInterface,HTable,HBaseAdmin等API的使用,新增了一些API来实现之前的功能: Connectioninterface: Co ...

随机推荐

  1. 痞子衡嵌入式:ARM Cortex-M文件那些事(3)- 工程文件(.ewp)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的project文件. 前面两节课里,痞子衡分别给大家介绍了嵌入式开发中的两种典型input文件:源文件(.c/.h/.s). ...

  2. python基础6--面向对象基础、装饰器

    1.类 class Student: def __init__(self, name, grade): self.name = name self.grade = grade def introduc ...

  3. Windows 花屏问题

    已经有2台电脑 Windows 10 系统出现花屏现象,表现为比较炫的界面出现花屏.文字显示不全.移位.闪烁等,如果点击“设置”.“开始”,Chrome浏览器等:比较平素的界面显示正常,比如资源管理器 ...

  4. msf中exploit的web_delivery模块

    背景:目标设备存在远程文件包含漏洞或者命令注入漏洞,想在目标设备上加载webshell,但不想在目标设备硬盘上留下任何webshell文件信息 解决思路:让目标设备从远端服务器加载webshell代码 ...

  5. Sql Server 2008日志满的解决办法

    通过sql命令 USE ZGZY; GO --由完整模式设置为简单恢复模式 ALTER DATABASE ZGZY SET RECOVERY SIMPLE WITH NO_WAIT GO --收缩日志 ...

  6. 聊聊我的 Java 自学之路

    最近经常在知乎收到类似『没基础,java 如何自学』.『怎么才能掌握编程』等等问题,再加上发现高中同学也在自学.有感而发,讲讲我的自学之路. 1.1. 大学 高考没正常发挥,考入一所二流的学校,当时分 ...

  7. 常用H5

    HTML5笔记 了解HTML5 ☞HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!!   例如: video 标签和 audio 及 canvas ...

  8. 解决: 移动端经mouseover显示出的弹层中链接点击问题

    通常我们会遇到这样的需求,导航菜单在鼠标划过的时候显示自定义弹层,在弹层中有一些链接需要点击后跳转或者其他一些事件.比如: $(".menu li").on("mouse ...

  9. vue+vuecli+webapck2实现多页面应用

    准备工作 在本地用vue-cli新建一个项目,首先安装vue-cil,命令: npm install -g vue-cli 新建一个vue项目,创建一个基于"webpack"的项目 ...

  10. #WEB安全基础 : HTML/CSS | 0x5a标签拓展和class、id属性的使用

    a标签不只是能链接到其他网页,也能链接到网页中的元素 class属性让你用CSS对特定的元素进行修饰 这些是一个网页设计者的有力武器 这节课还是一个index.html文件   以下是代码 <h ...