我正在使用Winforms应用程序。我们必须显示和操作在Cityengine服务器中创建和维护的3D对象,并且图像通过互联网提供(有点像Google Map 3D)。我们正在使用Awesomium来显示3D图像,因为它是唯一一个似乎能很好地处理WebGL的图像。
我希望我的客户能够点击某些3D对象,之后我希望我的桌面应用程序也能响应点击。换句话说,我需要Awesomium进行回调,因此当事件在3D图像中执行时立即通知应用程序。我怎么能这样做?
答案 0 :(得分:1)
您可以创建一个JavaScript绑定,允许您从JavaScript调用C#代码。
类似的东西:
JSObject interfaceBinding = webView.CreateGlobalJavascriptObject("bindingObject");
interfaceBinding.Bind("myFunction", false, myHandler);
你的hander函数看起来像这样:
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,...);
编辑:点击事件当然是在网页视图中用JavaScript处理的,我假设你知道怎么做,如果没有(并且没有高级API):在网上搜索' webGL采摘'了解可以在webGL中使用的不同可能方法(例如颜色挑选,射线挑选等)。