2014-09-26 3 views
0

Я работаю над приложением Winforms. Мы должны отображать и манипулировать 3D-объектом, который создается и поддерживается на сервере Cityengine, и изображения обрабатываются через Интернет (например, Google Map 3D). Мы используем Awesomium для отображения трехмерных изображений, так как это единственный, который, похоже, хорошо работает с WebGL.Обратный звонок после нажатия на веб-объект

Я хочу, чтобы мой клиент мог нажимать на некоторые из трехмерных объектов, и после этого я хочу, чтобы мое настольное приложение также отвечало на клик. Другими словами, мне нужен Awesomium, чтобы иметь обратный вызов, поэтому, когда событие выполняется в 3D-изображении, он немедленно уведомляет приложение. Как я могу это сделать?

ответ

1

Вы можете создать привязку JavaScript, которая позволяет вам вызывать код C# из JavaScript.

Что-то вроде:

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

С вашей функции левши смотрит Двойники на что-то вроде этого:

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,...); 

EDIT: событие щелчка, конечно, обрабатывается в Jav aScript в веб-представлении, и я просто предполагаю, что вы знаете, как это сделать, если нет (и нет высокоуровневого api): найдите в Интернете «сборку WebGL», чтобы узнать о различных возможных подходах (например, выбор цвета , сбор луча и т. д.), которые можно использовать в webGL.