Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008 |
Компоненты: готовые и "самодельные"
Подключение CustomUI. Внедренный и внешний интерфейс
Открываем пункт Component Definition контекстного меню символа и нажимаем на кнопку Set (которая касается CustomUI ). Теперь у нас есть два варианта, которые более детально обсуждаются ниже. Но в любом случае после этого нужно будет нажать на кнопку Browse и выбрать .swf-файл, который и будет использоваться в качестве CustomUI.
Если выбрать " Custom UI in external .swf file ", то CustomUI каждый раз будет загружаться из файла, который вы укажете (этот файл непременно должен существовать).
Если выбрать " Custom UI with .swf file embedded in .fla file ", то Флэш встроит указанный вами *.swf-файл внутрь *.fla-файла. Для того чтобы потом обновить его после изменений, нажмите на кнопку Update. Последний вариант является более удачным в том смысле, что не нужно "таскать за собой" еще один *.swf-файл. Например, если компонент, для которого настроен CustomUI, обновляется во флэш-роликах из центрального "библиотечного" ролика с помощью author time sharing, то в случае встроенного CustomUI последнее будет обновляться автоматически, обновлять у всех разработчиков *.swf-файл с CustomUI не нужно.
Правда, у этого способа есть и недостаток. Допустим, вы хотите реализовать сложный CustomUI, который считывает параметры по умолчанию из внешнего файла. Авторам не удалось реализовать такую схему с использованием встроенного CustomUI, потому что в его случае Флэш как бы "теряет" контекст текущей директории и не в состоянии корректно обратиться к внешнему файлу.
Проблема размеров
Если количество настроек у вашего компонента достаточно велико, то и размер CustomUI будет большой, и он не поместится в панельку Properties. Для таких случаев в настройках CustomUI компонента есть специальная опция: Display in Property Inspector или Display in Component Parameters Panel. Если выбрать последний вариант, то для отображения CustomUI будет открываться специальное окошко.
Иногда СustomUI в этом окне отображается не вполне корректно, например, срезаются верхушки контролов и т. п. К сожалению, мы не нашли решения этой проблемы.
Сохранение информации о состоянии контролов и параметры по умолчанию
Допустим, вы реализовали достаточно сложный компонент с большим количеством настроек и используете много этих компонентов в каждом флэш-ролике, причем каждый со своими параметрами. Также вы предусмотрели значения параметров по умолчанию, которые загружаются из внешнего файла. В таком случае вам необходимо предусмотреть проверку в CustomUI, результатом которой будет либо загрузка параметров из внешнего файла (если параметры еще никогда не были установлены для этого компонента ), либо отображение в CustomUI параметров, уже один раз установленных пользователем (эти параметры сохраняются в конкретном компоненте -экземпляре во внутренних структурах .fla-файла и доступны через объект xch ).
Эта проверка может выглядеть следующим образом:
if (!xch.alreadyRunBefore) { xch.alreadyRunBefore = true; //загружаем значения параметров по умолчанию. } else { //загружаем параметры из xch }