Короткая версия:
Легко / выполнимо / возможно ли программировать модальное окно во Flash (AS3)? Есть ли для него встроенная функциональность?
Длинная версия:
Я работаю над виджетом Flash (в AS3) и хотел бы иметь возможность показывать видеоклип в модальном режиме. По сути, мне нужно простое модальное окно внутри виджета. До сих пор я узнал, что мне нужно самому реализовать «модальность» (в AS3). Раньше что-то было в предыдущих версиях Flash, и что-то есть во Flex, но у меня нет опыта работы с Flax, и я не уверен, с чем это связано.
Я сам написал это без какого-либо глубокого планирования и вскоре столкнулся с некоторыми проблемами. Кажется, что корень проблемы в том, что я не могу сосредоточиться на мувиклипе (или, если быть точным, InteractiveObject
). Я обрабатываю события KEY_FOCUS_CHANGE
и MOUSE_FOCUS_CHANGE
, пытаясь предотвратить потерю фокуса FocusEvent.preventDefault()
. Но мне все же удается потерять фокус нажатием мыши. Что еще более странно, так это то, что когда я навязываю фокус с помощью свойства Stage.focus
, я получаю уродливую толстую желтую линию вокруг моего клипа. Предположительно указывает на то, что видеоклипы сфокусированы, но обычно его нет нигде. Значит ли это, что объект не фокусируется, но я все равно каким-то образом заставляю его фокусироваться?
Я понимаю, что приведенные выше вопросы не очень ясны, и я не ожидаю, что на самом деле на них отвечу. Но я пытаюсь указать, что мне кажется, что я делаю что-то не так. Итак, главный вопрос заключается в следующем: есть ли простой способ получить модальное поведение во Flash? Я думаю, что программировать это с нуля, обвязывать и обрабатывать различные мелкие события - это то, чего я не должен делать.
Больше всего меня раздражает то, что мне нужна эта модальная вдова для обработки и отображения некоторых сообщений об ошибках в крайнем случае. И поэтому вкладывать столько усилий в это не кажется правильным. Может быть, есть совершенно другой способ.
Мне известно о том, что этот вопрос, возможно, не подтверждается достаточным количеством исследований, но я начал работать над чем-то, что, как я думал, займет у меня полчаса, а это уже несколько часов. Я могу провести более систематическое исследование и позже опубликовать более конкретные вопросы.