Всем добрый день!
Справочно: Пишу небольшой проект (мобильная детская игра) на ангуляре 4, у меня возникла необходимость создания небольшого модуля, который бы позволял отслеживать состояние перетаскивания некоторого элемента интерфейса на определенную область экрана. Звучит как drag'n'drop, но только отличается более высокой сложностью, в связи с чем я реализую этот функционал полностью через js, т.е. без фич html5.
Я бы хотел отслеживать состояние курсора с помощью FSM, но при составлении некоторой абстрактной модели (на бумаге) я постонянно прихожу к тому, что одновременно мне нужно знать 2 состояния: положение курсора на экране и состояние нажатия кнопки мыши.
Читая техн. информацию и рекомендации по написанию кода с помощью fsm, я пришел к выводу, что активное состояние всегда должно быть одно. Но я не совсем понимаю, имеется ли ввиду одно состояния из множества однотипных (например, в моем случае два активных состояния из разных множеств - положение: "курсор на дашборде", нажатие кнопки: "кнопка мыши не нажата"), или одно состояние в целом на курсор (состояние: "курсор на дашборде и кнопка мыши не нажата").
Сделал пока по первому варианту, но не уверен в его верности, т.к. приходится постоянно чекать на наличие двух состояний, что усложняет систему. Правильно ли я понимаю суть концепции или лучше переделать по второму варианту?
PS использую абстракцию для управления fsm +
javascript-state-machine package.