2015-04-13 3 views
0

Я строю систему меню для XNA-рамки с Awesomium. Меню видны, и события mouseState успешно внедряются в мои webViews (некоторые из них работают с опрокидыванием CSS). Но я не могу выполнить методы в моем коде C#, когда событие onClick запускается в моих кнопках меню.обнаружение onClick с Awesomium в XNA

C#

 private void OnViewProcessCreated(object sender, EventArgs e) 
    { 
     JSObject menu = webView.CreateGlobalJavascriptObject("menu"); 

     if (menu == null) 
      return; 

     using (menu) 
      menu.BindAsync("onButtonClick", myJSMethodHandler); 
    } 

    private void myJSMethodHandler(object sender, JavascriptMethodEventArgs e) 
    { 
     if (e.MethodName == "onButtonClick") 
     { 
      WebCore.Shutdown(); 
     } 
    } 

JS/HTML

<!DOCTYPE html> 
<html> 
<head> 
    <title>Main UI</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
    <script> 
    { 
     object.onclick = menu.onButtonClick; 
    } 
    </script> 

</head> 

<body> 
    <div class="d1"> 
     <p><h1 class="button1" id="b1" onclick="menu.onButtonClick();">Agents</h1></p> 
     <p><h1 class="button1" id="b2" onclick="">Research</h1></p> 
     <p><h1 class="button1" id="b3" onclick="">Infrastructure</h1></p> 
     <p><h1 class="button1" id="b4" onclick="">Financial</h1></p> 
    </div> 
</body> 

</html> 

ответ

0

Удалены ненужные функции JS и называется функцией связаны непосредственно с элементом.

<!DOCTYPE html> 
<html> 
<head> 
    <title>Main UI</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 

</head> 

<body> 
    <div class="d1"> 
     <p><h1 class="button1" id="b1" onclick="menu.onButtonClick();">Agents</h1></p> 
     <p><h1 class="button1" id="b2" onclick="">Research</h1></p> 
     <p><h1 class="button1" id="b3" onclick="">Infrastructure</h1></p> 
     <p><h1 class="button1" id="b4" onclick="">Financial</h1></p> 
    </div> 
</body> 

</html> 

Также реализована функция OnViewProcessCreated, которую никогда не вызывают, не зная почему. Создал JSObject в главной функции Awesomium, и он прошел отлично.

public AwesomiumMenu(string Source, Microsoft.Xna.Framework.Rectangle rectangle) 
    { 
     // CSS styling 
     const string SCROLLBAR_CSS = "::-webkit-scrollbar { visibility: hidden; }"; 
     WebCore.Initialize(new WebConfig() 
     { 
      CustomCSS = SCROLLBAR_CSS 
     }); 

     webView = WebCore.CreateWebView(rectangle.Width, rectangle.Height); 
     webView.ReduceMemoryUsage(); 
     webView.Source = Source.ToUri(); 
     webView.IsTransparent = true; 

     while (webView.IsLoading) 
      WebCore.Update(); 

     Rectangle = rectangle; 
     JSObject menu = webView.CreateGlobalJavascriptObject("menu"); 
     menu.BindAsync("onButtonClick", myJSMethodHandler); 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^