明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

Skyline WEB端开发 ——添加事件

Posted on 2020-04-22 08:42  且行且思  阅读(324)  评论(0编辑  收藏  举报

skyline中有很多自带的事件可以进行调用,今天给大家介绍几种常用的事件

一、Open() 

打开指定工程

//初始化加载TerraExplorer工程
$(window).load(function() {
    try {
        var flyPath = "C:\\Users\\admin\\Desktop\\SkyglobeLB.fly";
        sgworld.AttachEvent("OnLoadFinished", OnProjectLoadFinished);
        sgworld.Project.Open(flyPath);
    } catch(ex) {
        addLog(ex.message);
    }
});

二、OnProjectLoadFinished()

在我们执行SGWorld的Open方法,加载完成一个FLY工程后,就会触发这个事件。

也就是说,我们通过这个事件可以判断在什么时间完成了FLY工程的加载,然后,我们就可以在这个事件函数里说上一句“Hello World!”或者,再去执行一些其他操作,比如飞到某个地点,开启或者关闭某些图层等等。

//加载事件
function OnProjectLoadFinished(){
    //默认飞到某一个位置
    var Washington = sgworld.Creator.CreatePosition(
        116.3912630081,
        39.9074812817,
        1000,
        0,
        0.0, // 偏航角
        -43.0); // 俯仰角
    sgworld.Navigate.FlyTo(Washington);
  alert("Hello World!");
}

 三、OnFrame()

帧被渲染前发送事件,允许客户端以帧运动方式执行操作(例如,移动地面对象)。每一帧移动都会触发该方法。

//添加事件
sgworld.AttachEvent("OnFrame",OnFrame);
//进行调用
function OnFrame() {
    if(lable != null) {
        lable.Position = lable.Position.Move(100, -90, $("#pitch").val());
    }
}

四、OnLButtonClicked()

当用户点击鼠标左键时触发

//注册鼠标左键点击事件
sgworld.AttachEvent("OnLButtonClicked", OnLButtonClicked);
//鼠标左键点击事件
function OnLButtonClicked(Flags, X, Y) {
    alert(Flags + "===" + X + "===" + Y);
}
//Flags, 定义各种组合键被按下, 
/*MK_LBUTTON  = 1
MK_RBUTTON  = 2
MK_SHIFT = 4
MK_CONTROL  = 8
MK_MBUTTON  =16
*/
//X,鼠标的 X 坐标。坐标为屏幕坐标,三维窗口左上角为起始坐标
//Y,鼠标的 Y 坐标。坐标为屏幕坐标,三维窗口左上角为起始坐标

 

五、OnLButtonDblClk()

当用户双击鼠标左键时触发事件

四、OnLButtonClicked()类似

 

六、OnLButtonDown()

当用户按下鼠标左键时触发事件

四、OnLButtonClicked()类似

 

七、OnLButtonUp()

用户释放鼠标左键时触发事件

四、OnLButtonClicked()类似

 

八、OnMButtonDblClk()

用户双击鼠标中键时触发事件

四、OnLButtonClicked()类似

 

九、OnMButtonDown()

用户按下鼠标中键时触发事件

四、OnLButtonClicked()类似

 

十、OnMButtonUp()

用户释放鼠标中键时触发事件

四、OnLButtonClicked()类似