2014-09-26 48 views
0

我正在使用Winforms应用程序。我们必须显示和操作在某个地方的Cityengine服务器中创建和维护的3D对象,并通过互联网(类似Google Map 3D)提供图像。我们使用Awesomium来显示3D图像,因为它是唯一能够很好地处理WebGL的图像。点击网页对象后回电

我希望我的客户端能够点击某些3D对象,然后我希望我的桌面应用程序也响应点击。换句话说,我需要Awesomium进行回调,以便在3D图像中执行事件时立即通知应用程序。我怎样才能做到这一点?

回答

1

您可以创建一个JavaScript绑定,允许您从JavaScript调用C#代码。

喜欢的东西:

JSObject interfaceBinding = webView.CreateGlobalJavascriptObject("bindingObject"); 
interfaceBinding.Bind("myFunction", false, myHandler); 

有了您的投手功能寻找simular到这样的事情:

private void myHandler(object sender, JavascriptMethodEventArgs e) 
{ 
    //do whatever you want with e.Arguments containg the arguments from the js call 
} 

这将创建一个名为“bindingObject”作为全局JavaScript对象的对象,你可以叫它与

window.bindingObject.myFunction(yourParmeters,...); 

编辑:点击事件当然在Jav处理aScript在Web视图中,我只是假设你知道如何去做,如果没有(并且没有高级别的API):在Web上搜索'webGL picking'以了解不同的可能方法(例如颜色选择,光线拾取等),可以在webGL中使用。