zoukankan      html  css  js  c++  java
  • SkylineGlobe7.0.1版本 通过鼠标左右平移模型对象

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

    <!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=" 19%; height: 560px;"></object>
        <object id="TerraExplorer3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" style=" 80%; height: 560px;"></object>
    </body>
    </html>
  • 相关阅读:
    表详细操作
    库相关操作
    数据库一
    协程
    多线程2
    .Net鼠标随动窗口
    .Net操作音频
    .Net操作注册表--un
    .Net操作.exe文件
    .Net连接数据库(AOD.Net)
  • 原文地址:https://www.cnblogs.com/yitianhe/p/8532989.html
Copyright © 2011-2022 走看看