2014-09-26 4 views
0

WinForms 응용 프로그램에서 작업하고 있습니다. 우리는 Cityengine 서버에서 생성되고 관리되는 3D Object를 표시하고 조작해야하며, 이미지는 인터넷 (Google Map 3D와 같은 종류)을 통해 제공됩니다. 우리는 Awesomium을 사용하여 WebGL을 잘 처리하는 것으로 보이는 3D 이미지를 표시합니다.웹 객체를 클릭하면 콜백이 발생합니다.

내 클라이언트가 3D 개체 중 일부를 클릭 할 수있게 한 다음 데스크톱 응용 프로그램이 클릭에 응답하기를 원합니다. 즉, 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'라는 객체를 생성하고 당신이 그것을 호출 할 수 있습니다 with

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

EDIT : 클릭 이벤트는 물론 Jav에서 처리됩니다. 웹보기에서 aScript를 사용하면 어떻게 할지를 알고 있다고 가정합니다 (높은 수준의 API는 없습니다) : 웹에서 'webGL picking'을 검색하여 여러 가지 가능한 방법에 대해 알아 봅니다 (예 : 색상 선택 , ray-picking 등)을 webGL에서 사용할 수 있습니다.

관련 문제