关闭

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

标签: 伟景行CityMaker
517人阅读 评论(1) 收藏 举报
分类:

示例代码中的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

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12867次
    • 积分:309
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档