搜索
开启辅助访问

QQ登录

只需一步,快速开始

立即注册 找回密码
查看: 330|回复: 0

CityMaker 二次开发培训 06 IUIImageButton,IOverlayLabel 参数详解

[复制链接]

128

主题

179

帖子

5708

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5708
发表于 2016-7-26 10:29:29 | 显示全部楼层 |阅读模式
1、大家用过CreateImageButton的都知,第一次用的时候很难控制图片的位置,反正我是弄了好久才算是明白了,那么我写几个常用的图片位置给大家,希望能节省大家的一些时间。 javascript 脚本。
            var width = document.getElementById("__g").offsetWidth;
            var height = document.getElementById("__g").offsetHeight;
            var rect = __g.new_UIRect;
            //scale是控件的相对位置,0.5就是半个屏幕,都设置为0,那么后面的数值才起作用
            //LeftScale, LeftOffset,TopScale,TopOffset,RightScale,RightOffset,BottomScale,BottomOffset  
            rect.init(0, left, 0, top, 0, w, 0, h);                                      //左上角10,10位置的32*32大小
            //rect.init(0, 0, 0, height - 42, 0, 32, 0, height-10);             //左下角距离左侧和底部10,10的32*32大小,主意如果有imagebutton遮盖则看不到
            //rect.init(0, width - 42, 0, 10, 0, width - 10, 0, 42);            //右上角距离边框10,10,的32*32的大小
            //rect.init(0, width - 42, 0, height-142, 0, width - 10, 0, height-110);  //右下角距离下面100,右侧10的32*32的大小
            home = __g.uiWindowManager.createImageButton();
            home.isVisible = true;
            home.setArea(rect);
            home.name = name;
            home.normalImage = window.defaults.globe_path + img1;
            home.hoverImage = window.defaults.globe_path + img2;
            home.pushedImage = window.defaults.globe_path +img2;
            home.subscribeEvent(gviUIEventType.gviUIMouseClick);

            // 绑定RenderControl事件
            if (__g.onuiwindowevent == null)
             {
                 __g.onuiwindowevent = fnOnUIWindowEvent;
             }

//*******************fnOnUIWindowEvent事件**************************
function fnOnUIWindowEvent(sender, e) {
        if (sender.uiWindow == null)
         return;
        if (e == gviUIEventType.gviUIMouseClick)
        {
            if (sender.uiWindow.type == gviUIWindowType.gviUIImageButton) {
                switch (sender.uiWindow.name) {
                    case "home":
                        break;
                    case "basic":
                        alert("火焰");
                        break;
                    default:
                        break;
                }
            }
        }

    }


2、既然这里讲到了CreateImageButton,顺带也就说下createOverlayLabel,这个的位置确定要靠里面的setX,setY,宽和高靠setWidth和setHeight,这里只说一句:大家注意看帮助:setX的帮助:设置界面标签中心点的x坐标(单位像素)看到这里或者很多人会恍然大悟,原来是中心点。
这里发个左下角的配置供大家参考。
            __g = window.defaults.sgworld;
            var logoLabel = __g.objectManager.createOverlayLabel(__g.projectTree.rootID);
            logoLabel.imageName = imgPath;

            //******************************************************************
            //主意,只能用本地图片****************************************
            //******************************************************************

            //设置大小
            logoLabel.setWidth(109, 0, 0);
            logoLabel.setHeight(17, 0, 0);
            logoLabel.setX(80, 0, 0);    //左下角坐标109*17大小的logo
            logoLabel.setY(80, 0, 0);    //
            __g.viewport.logoVisible = false;

QQ|Archiver|手机版|GIS3D 基地 ( 京ICP备16033688号

GMT+8, 2017-6-29 13:24 , Processed in 0.110478 second(s), 34 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表
 
Skyline中文社区-总群
帮主 gis3d 海洪