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="width: 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定義的無效。
