@ned4ded
Верстка, Фронтенд

Возможно ли использование нескольких параллельных состояний в FSM?

Всем добрый день!

Справочно: Пишу небольшой проект (мобильная детская игра) на ангуляре 4, у меня возникла необходимость создания небольшого модуля, который бы позволял отслеживать состояние перетаскивания некоторого элемента интерфейса на определенную область экрана. Звучит как drag'n'drop, но только отличается более высокой сложностью, в связи с чем я реализую этот функционал полностью через js, т.е. без фич html5.

Я бы хотел отслеживать состояние курсора с помощью FSM, но при составлении некоторой абстрактной модели (на бумаге) я постонянно прихожу к тому, что одновременно мне нужно знать 2 состояния: положение курсора на экране и состояние нажатия кнопки мыши.

Читая техн. информацию и рекомендации по написанию кода с помощью fsm, я пришел к выводу, что активное состояние всегда должно быть одно. Но я не совсем понимаю, имеется ли ввиду одно состояния из множества однотипных (например, в моем случае два активных состояния из разных множеств - положение: "курсор на дашборде", нажатие кнопки: "кнопка мыши не нажата"), или одно состояние в целом на курсор (состояние: "курсор на дашборде и кнопка мыши не нажата").

Сделал пока по первому варианту, но не уверен в его верности, т.к. приходится постоянно чекать на наличие двух состояний, что усложняет систему. Правильно ли я понимаю суть концепции или лучше переделать по второму варианту?

PS использую абстракцию для управления fsm + javascript-state-machine package.
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы