Опубликован: 23.12.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 11:

Компоненты: готовые и "самодельные"

Подключение 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
}
алексеи федорович
алексеи федорович
Беларусь, рогачёв
Тамара Ионова
Тамара Ионова
Россия, Нижний Новгород, НГПУ, 2009