海洪博客Skyline,CityMaker

Skyline和CityMaker的培训和使用

CityMaker学习教程10 示例代码的使用Javascript

示例代码中的CS版本和BS版本是对应的,基本都是一对一的,不过BS有些代码跑起来比较困难,比如说这里用到的获取文件位置的代码 var skyboxPath = getSamplesRelatePath(“/Media/skybox”);这个函数调用内容如下:

var flag = unescape(location.pathname).lastIndexOf("Samples");
if (flag > 0) {
        return (unescape(location.pathname).substring(1, flag) + "Samples");
    }         

这个函数就经常性的获取不到对应的文件夹位置,会报错,这里我用了一个替换函数

 //获取网络路径
    function abspath() {
        var abspath = unescape(window.location.href);
        var index = abspath.indexOf("?");
        if (index > 0) abspath = abspath.substr(0, index - 1);
        index = abspath.lastIndexOf("/");
        var index2 = abspath.lastIndexOf("\\");
        index = (index > index2) ? index : index2;
        if (index <= 0) return abspath;
        abspath = abspath.substring(0, index);
        if (abspath.substring(0, 1) == "/") abspath = abspath.slice(1);
        var re = /file:\/\/\//gi;
        if (abspath.match(re) != null) abspath = abspath.replace(re, "");
        return abspath;
    };

这个函数在获取当前执行html在网站中的绝对路径的时候非常好用,当我们调用天空图片的时候,只需要abspath()+”skybox//1_bk.png”即可调用到网络路径的图片了。
1、cm7.js里面放的都是一些结构体和类的定义,属于配置型js,如果觉得太大可以拆解开,用到哪个把哪个提取出来放到其他地方。
2、cm7_sample_util.js是功能性的,里面有初始化三维窗体,加载FDB,2个大函数,包括本地FDB和网络的FDB。

这个程序包代码量很庞大,但是封装相对较松散,每个示例都实现了片段功能,没有针对业务进行组装,我后续会组装一个完整的MVC结构示例代码,将功能进行模块化定义,方便后续的使用。

具体结构如下:

这里写图片描述

这套整个写完基础版会免费对外发放,涉及高级一点的功能可以申请。
Model如下:
这里写图片描述

如需支持请联系MrSun
sunhaihong@gvitech.com

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。海洪出品,必属精品。 https://blog.csdn.net/shh369/article/details/51558622
文章标签: 伟景行 CityMaker
个人分类: CityMaker 培训
上一篇CityMaker学习教程09 一个示例,多窗体,画中画,多屏幕显示
下一篇Skyline学习系列 01 如何通过SFS发布shape文件
想对作者说点什么? 我来说一句

CityMaker Builder

2012年11月27日 2.66MB 下载

没有更多推荐了,返回首页

关闭
关闭