Я использовал Awesomium в проекте Unity 3D, и у меня не было подобных проблем. Вы должны проверить обработчик события onmouseover.
Если вы сделали свою домашнюю работу, вы сможете загрузить активы с веб-страницы. Поэтому загрузите страницу прямо в Chrome и используйте console.log('on-mouse-over')
, чтобы получить обратную связь JS при вызове события. Если вы завалены этими консольными сообщениями, обработчик событий вызывается слишком часто, и вам следует сначала отладить свой JS в браузере. Только после этого загрузите его в свой клиент AWE.
Я поделюсь с вами своим опытом работы с Awesomium.
Я рекомендую делать код JS как можно более тонким и выгружать как можно больше кода на C#. Вот почему.
Вы, вероятно, захотите реализовать подпрограммы C#, чтобы проверить, действительно ли мышь находится в непрозрачном месте (внутри WebView
) или в (полу-)прозрачной зоне, которая не должна препятствовать переходу по нижележащим объектам. Когда вы используете CSS, например box-shadow
, вы скоро заметите, что тень добавляет пиксели вокруг и внутри границы WebView.
Эти граничные пиксели должны быть кликабельными. У вас также могут быть непрямоугольные формы или динамические выдвигающиеся элементы пользовательского интерфейса и тому подобное. Таким образом, вам придется обойти фиксированные границы WebView, проверяя вручную, находитесь ли вы в прозрачном месте или нет.
Вы также хотите, чтобы код C# обрабатывал перетаскивание между несколькими экземплярами WebView, поскольку каждый из них имеет свой собственный глобальный контекст, и нет возможности обрабатывать перетаскивание между WebView только в JS.
Итак, у вас уже реализован весь этот код C#.
Просто сделайте еще один шаг и снимайте всю обработку пользовательского интерфейса с WebView.
Вы должны использовать JS только для отправки/получения сообщений из кода C#, и следует избегать сложных сценариев JS.
Ту же функциональность в C# гораздо проще отлаживать. И естественным образом возникает шаблон MVC с контроллерами, реализованными на C#.
Очень тонкий JS менее подвержен ошибкам.
И последнее, но не менее важное: если вы являетесь платным клиентом, вам следует воспользоваться их поддержкой и форумами только для клиентов.
Желаю вам удачи, особенно с кошмаром перетаскивания! :)
person
pid
schedule
17.04.2014