• 如何屏蔽SkylineGlobe提供的三维地图控件上的快捷键


    SkyllineGlobe提供的

    <OBJECT ID=" TerraExplorer3DWindow" CLASSID="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" width=500 height=400></OBJECT>
    可以用来加载显示FLY格式的三维地图工程,可以嵌入到HTML页面中。

    这个三维地图控件里,封装了在TerraExplorer中的一些快捷键,比如控制方向的"Q/W/A/S/Z/X/Home/Pgup/PgDn/End"等等,

    但如果我们想重新定义一些快捷键,那么,首先该如何屏蔽原来的这些快捷键或者如何捕获到键盘触发的事件函数呢?

    请看下面的示例代码:

    <!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></title>
        <script type="text/javascript" language="javascript">
            function Test() {
                var TE3DWindow = window.document.getElementById("TE3DWindow");
                //TE3DWindow.attachEvent("OnKeyboardMessage", OnKeyboardMessage);
            }
    
            function OnKeyboardMessage(Message, KeyCode, KeyData, bHandled) {
                bHandled = true;
                //return true;
            }
        </script>
        <script language="VBSCRIPT">
    
    Sub TE3DWindow_OnKeyboardMessage(Message, KeyCode, KeyData,bHandled)
        msgbox KeyData
       bHandled = true 'Indicate that the client handled the event.
       
    end sub 
    
    
        </script>
    </head>
    <body style="margin: 0px; border: 0px;">
        <div>
            <table cellpadding="0" cellspacing="0" style=" 100%; height: 100%; margin: 0px;
                border: 0px;">
                <tr>
                    <td>
                        <input id="Button1" type="button" value="button" onclick="Test()" />
                    </td>
                </tr>
                <tr>
                    <td>
                        <object id="TE3DWindow" classid="CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1" width="400"
                            height="400">
                        </object>
                    </td>
                </tr>
            </table>
        </div>
    </body>
    </html>
    

      

    上面的代码中,主要用到了 OnKeyboardMessage 这个事件函数,大家需要注意的是:

    这个事件函数是定义到 TE3DWindow 对象的,而不是常用的SGWorld对象;

    这个方法需要通过VBS来定义,JS定义的无效。

  • 相关阅读:
    Appium + Python自动化
    Appium + python自动化
    基于python的request库,模拟登录csdn博客
    利用uiautomator实现Android移动app启动时间的测试
    JavaScript 闭包
    Vue.js 参考资料汇总
    JVM垃圾回收策略
    JVM内存分配策略
    synchronized底层原理
    HTTPS加密原理
  • 原文地址:https://www.cnblogs.com/yitianhe/p/4111474.html
Copyright © 2020-2023  润新知