欢迎来到天天文库
浏览记录
ID:25098374
大小:532.00 KB
页数:85页
时间:2018-11-18
《skyline6开发整理源代码-javascript》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一,如何快速把Skyline控件嵌入到现有系统中一、skyline提供了这样一个控件:二、三、我们在程序开发中,只要把它嵌入到现有的WEB页面中即可。四、这个控件主要是用来装载三维场景的。五、如果用户想要实现一些功能,比如说定位到某一个指定位置,则需要通过skyline提供的TerraExplorer里面的接口来实现:六、 七、functionCreateTE(){ varTEOb
2、j=document.createElement("object"); document.appendChild(TEObj); TEObj.name="SGAPITEObj"; TEObj.id ="SGAPITEObj"; TEObj.classid="clsid:3a4f9191-65a8-11d5-85c1-0001023952c1"; returnTEObj; } functiontest(){ varTE=CreateTE(); varIInformationT
3、ree=TE.interface("IInformationTree5"); varIPlane=TE.interface("IPlane5"); IPlane.SetPosition(mypos.x,mypos.y,mypos.h,mypos.yaw,-90,mypos.roll,0,0,0); }八、 九、很多用过skylinesoft的人觉得:用skyline做二次开发确实很简单。二,如何解决调试WEB页面时自动运行TERRAEXPLORER软件的问题大家在使用TerraExplorerDeveloper开发包进行二次开发的时候,特别是进行WEB
4、开发的时候,经常会遇到这样一个问题,就是在WEB页面(html、aspx或者jsp等)中嵌入TerraExplorerObject对象,即,然后运行该WEB页面,在页面加载的过程中,会将TerraExplorerView或者TerraExplorerPro软件运行起来,一般情况下,只要在当前页面中添加另外一个用于三维场景显示的控件5、f9192-65a8-11d5-85c1-0001023952c1"width=500height=400>并且需要保证TerraExplorer3DWindow对象先于TE对象被初始化,即可消除前面提到的问题。但在有些时候,我们开发的系统中可能会嵌入许多WEB页面,而且在这些页面中也都会涉及到对TE接口的调用,这时运行我们的系统,也有可能把TerraExplorer软件运行起来,这是我们不想看到的,其实也可以说这就是一种逻辑错误,而消除这个错误的方法很简单,就是我们必须保证所有对TE接口的调用,都要放在TerraExplorer3DWindow对象加载之后。但6、是我们如何保证在复杂的系统中,理清他们之间的先后顺序呢?这里可以给大家介绍一个实用的解决方法。就是把TE对象放到一个函数里面去初始化,而不是像原来那样直接嵌在页面里。例如:function_$SGCreateTEObj(){varobj=window.document.getElementById("TE");if(obj==null){obj=document.createElement('object');document.body.appendChild(obj);obj.name="TE";obj.id="TE";obj.classid="CLSID:3a4f9191-67、5a8-11d5-85c1-0001023952c1";}returnobj;}这样,在其他需要调用TE接口的时候,我们只需要重新实例化一下TE对象即可。varTE=_$SGCreateTEObj(); varIPlane=TE.interface("IPlane5");这时,大家也许还会有疑问,就是对于TE里面的事件接口_ITerraExplorerEvents5该如何引用呢?在以前Skyline提供给大家的例子中,我们可以看到用javascript中的写法是functio
5、f9192-65a8-11d5-85c1-0001023952c1"width=500height=400>并且需要保证TerraExplorer3DWindow对象先于TE对象被初始化,即可消除前面提到的问题。但在有些时候,我们开发的系统中可能会嵌入许多WEB页面,而且在这些页面中也都会涉及到对TE接口的调用,这时运行我们的系统,也有可能把TerraExplorer软件运行起来,这是我们不想看到的,其实也可以说这就是一种逻辑错误,而消除这个错误的方法很简单,就是我们必须保证所有对TE接口的调用,都要放在TerraExplorer3DWindow对象加载之后。但
6、是我们如何保证在复杂的系统中,理清他们之间的先后顺序呢?这里可以给大家介绍一个实用的解决方法。就是把TE对象放到一个函数里面去初始化,而不是像原来那样直接嵌在页面里。例如:function_$SGCreateTEObj(){varobj=window.document.getElementById("TE");if(obj==null){obj=document.createElement('object');document.body.appendChild(obj);obj.name="TE";obj.id="TE";obj.classid="CLSID:3a4f9191-6
7、5a8-11d5-85c1-0001023952c1";}returnobj;}这样,在其他需要调用TE接口的时候,我们只需要重新实例化一下TE对象即可。varTE=_$SGCreateTEObj(); varIPlane=TE.interface("IPlane5");这时,大家也许还会有疑问,就是对于TE里面的事件接口_ITerraExplorerEvents5该如何引用呢?在以前Skyline提供给大家的例子中,我们可以看到用javascript中的写法是functio
此文档下载收益归作者所有