ИМО, это зависит от 1) Насколько вам удобно с API рисования / графическим классом Flash, и 2) Насколько гибким должно быть каждое окно / диалог.
Если проще просто сложить их вместе, какстатические объекты - и если они не обязательно нуждаются в гибкости для значительного изменения размеров / стиля (можете ли вы с одной стороны рассчитывать, сколько раз им нужно было изменить с тех пор, как это было изначально сделано в Director много лет назад?), этоочевидно, сделать это проще, чем потратить время и силы на их динамическое воссоздание, особенно если вам не очень удобно с API рисования Flash.
Тем не менее, многое можно сделать динамически с API рисования Flash,поэтому, если у вас есть время / интерес, я бы, конечно, предложил покопаться и сделать это «правильным» способом, если вы хотите ознакомиться с API рисования.
Мой метод для такого рода вещей обычно идеткак это:
- Создайте отдельный класс, который расширяет Sprite / MovieClip;что-то вроде 'Dialog.as'.
- Создайте публичные методы init (), show () и hide () и приватный метод build ().
- init () вызывается простоодин раз при инициализации вашего приложения и принимает некоторые глобальные параметры для внутреннего хранения (отступы, цвета и т. д.).
- show () принимает аргумент либо текста (String), либо даже Sprite /MovieClip - все, что вы хотите показать в этом диалоге.Когда вызывается (когда вы хотите создать окно), он использует это - плюс все параметры init, которые были изначально переданы во время init () - чтобы нарисовать себя, а затем показать себя (анимацию свойства .alpha, или просто установить.visible свойство).
- Когда вы хотите закрыть диалоговое окно, обязательно вызовите метод hide (), который сначала скрывается, а затем очищает все, что было создано (удаление слушателей и т. д.), чтобыв следующий раз, когда он вызывается, он может нарисовать себя свежим.
Может также иметь смысл передать в этот объект ссылку на Stage (в исходном вызове init ()), чтобы он моготцентрируйте себя и размер соответственно на сцене, а также добавьте самого Chhild вверху списка отображения, чтобы он всегда был выше всего остального.
Надеюсь, это поможет.