您的位置:首页 > Web前端 > JavaScript

skyline web开发 js报告SGWorld对象不支持此属性或方法的原因

2012-08-09 09:28 1541 查看
因项目要高web的skyline开发,确切说是terraExplorer pro的开发,参考skyline的官方示例,直接运行javascript的例子(例子代码如下),却爆出错误“对象不支持此属性或方法”,调试发现是SGWorld的属性和方法好像在javascript中不识别,导致不识别的可能原因中,我首先排除了拼写错误,错误的可能只能是声明的对象可能错了,后来发现声明的对象是在“object”标签中实现的,其中有一个“CLSID”,这个标示其实是GUID,它是Globally
Unique Identifier的简称,中文翻译为“全局唯一标示符”,在Windows系统中也称之为Class ID,缩写为CLSID,指windows系统对于不同的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件分配一个唯一表示它的ID代码,用于对其身份的标示和与其他对象进行区分。问题就出在这里,因为我发现不同terraExplorer
pro的版本中声明SGWorld的CLSID是不同的,可能是我的版本与当前示例中的CLSID的正好不同,后来发现果然是,我的版本是6.0的,而示例的版本是针对最新的6.1版本的,这是造成此原因的罪魁祸首啊,改回6.0的版本,即

CLSID:3a4f91b0-65a8-11d5-85c1-0001023952c1,一切ok了


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTML Example</title>
<script type="text/javascript">
function Init() {
try {
var flyPath = "http://www.skylineglobe.com/SkylineGlobe/WebClient/PresentationLayer/WebClient/SkyglobeLB.fly";
// attach callback to the load finished event
SGWorld.AttachEvent("OnLoadFinished", OnProjectLoadFinished);
// Load default developer fly file from www.skylineglobe.com web site.
// default load is in async mode
SGWorld.Project.Open(flyPath);
alert("Opening project " + flyPath + " in async mode");
}
catch (e) {
alert("Error: " + e.description);
}

}

function OnProjectLoadFinished() {
alert("Received project loaded event. Click OK to fly to Washington DC.");
var Washington = SGWorld.Creator.CreatePosition(-77.036667, 38.895111, 1500);
SGWorld.Navigate.FlyTo(Washington);
}
</script>
</head>
<body onload="Init()">
<object id="TE" classid="clsid:3a4f9192-65a8-11d5-85c1-0001023952c1" style="width: 600px;height: 600px"></object>
<object id="SGWorld" classid="CLSID:3a4f91b1-65a8-11d5-85c1-0001023952c1" style="visibility: hidden;height: 0"></object>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐