Я строю игру с использованием canvas и EaselJS, но есть проблема при выполнении чего-либо внутри onclick, который удаляет фокус окна, т.е. prompt, alert, window.open.EaselJS onclick занимает весь холст
Это происходит в FireFox и на некоторых мобильных устройствах Android из того, что я видел.
Я думаю, что я понимаю, почему это, но я не знаю, как это исправить (я не знаю, как объяснить в одном предложении, так что название этого вопроса не совсем верно)
Если у меня есть предупреждение в пределах OnClick как так
_t.container.on('click', function(e) {
alert('test');
//end
e.preventDefault();
e.nativeEvent.preventDefault();
return false; //all of these added when trying to find a work around
});
// кАК ВОПРОИЗВЕДЕНИЕ Issue
если нажать на цель, огни предупреждения, переместите мышь везде, где (еще над холстом, хотя) нажать кнопку ввода для закрытия предупреждения, а затем независимо от того, где расположена мышь, il он перемещается, нажатие кнопки запускает одно и то же событие, а затем снова появляется предупреждение.
Это действительно проблема на мобильных устройствах, так как «мышь» не может быть перемещена/коснуться позиции, а затем нажать экран всегда запускает второй onclick, тогда как на настольных компьютерах он делает это только в том случае, если мышь не перемещается с момента закрытия предупреждения.
Я думаю, что это проблема с самой библиотекой CreateJS, так как любые примеры событий click и с ними содержат эту проблему.
Я думал, что там может быть способ заставить createjs установить mouseposition в 0,0
вот пример, где вопрос может быть найден ..
http://www.ajohnstone.com/test/hackday/CreateJS-EaselJS-b262a85/tutorials/Mouse%20Interaction/
Если вы должны использовать оповещения или фокусировать потери функций, то, возможно, вы можете использовать функцию hitTest в вашем обработчике, чтобы проверить, действительно ли щелчок находится на контейнере. –
Разве это не даст тот же результат, что и createjs, все еще думает, что мышь находится в исходном положении. И это не так много предупреждений, так как window.open – rorypicko
hitTest принимает аргументы x и y в качестве аргумента, вы можете передавать координаты событий. Но я не тестировал (должен построить тестовый пример). –