Объект CustomActions

Разработчики из Macromedia не рекомендуют напрямую редактировать документы ActionsPanel.xml, AsCodeHints.xml и AsColorSyntax.xml. Во-первых, при этом можно внести ошибку, которая полностью блокирует нормальную работу панели Actions. Во-вторых, данные документы не так уж просто найти (их расположен ие зависит от операционной системы). В-третьих, удалить введенные когда-то теги будет довольно сложно ввиду большого размера документа ActionsPanel.xml. Для перенастройки панели Actions техничнее использовать особый объект ActionScript CustomActions.

Он предназначен для того, чтобы ХМL-документы с описанием инициализируемых элементов можно было помешать в папку ActionsPanel директории Configuration (и удалять их оттуда) непосредственно из среды разработки Flash.

Принципы использования объекта CustomActions мы изучим на конкретном примере. Попробуем создать в дереве языка панели Actions новую ветвь «undocumented», в которой будут храниться недокументированные элементы. В папку Functions этой ветви поместим функцию ASSetPropFlags(). Эту функцию также сделаем выделяемой цветом. Чтобы решить все эти задачи, нужно выполнить действия, описанные ниже.

1.


Предопределенные элементы ActionScript инициализируются при помощи трех XML-документов, которые мы подробно разобрали в прошлом пункте. При инициализации пользовательских элементов с использованием объекта CustomActions нужно создать один XML-документ, который как бы объединяет в себе документы ActionsPanel.xml, AsCodeHints.xml и AsColorSyntax.xml. Этот документ образуется корневым тегом ... и тремя вложенными тегами: ... , ... и .... Данные вложенные теги идентичны корневым тегам соответствующих документов. Следовательно, и содержимое их задается точно так же:




tiptext="Недокументированные элементы "> tiptext="Недокументированные функции "> text="ASSetPropFlags(%object,properties,flag1,flag2 %);"/>









У документа есть и четвертый вложенный тег — ....


Он используется разработчиками из Macromedia, чтобы ветви для компонентов, имеющихся только в профессиональном издании программы, не отображались в обычной ее реализации.

2. Текст XML-документа можно набрать и непосредственно на панели Actions в виде строки. Но проще сохранить его во внешнем текстовом файле. Наберите приведенный выше код в любом текстовом редакторе, а затем сохраните его на рабочем столе как undocumented.xml. Так как среда разработки Flash работает с текстом в формате Unicode, в качестве кодировки создаваемого файла следует выбрать UTF-8. При этом можно, например, сделать подсказки или названия ветвей русскоязычными.

3. Создайте новый FLA-файл и сохраните его на рабочем столе. Затем на его первый кадр «повесьте» следующий код:

var inst:XML=new XML();
inst.load("undocumented.xml");
inst.onLoad=function():Void {
CustomActions.install("undocum",inst.toString());
}

Смысл данного кода довольно прозрачный. Создается объект класса ХМL, импортирующий посредством метода load() документ undocumented.xml. Когда текст документа поступает в фильм (при этом срабатывает событие onLoad), он под именем undocum.xml заносится в специальную папку CustomActions директории ActionsPanel.


Выполняет эту операцию метод CustomActions.install(name, text), где name — имя, под которым XML-файл будет создан в папке CustomActions, text — текст документа инициализации. Если файл успешно записывается, то метод install() возвращает true. При сбое (его наиболее вероятная причина в том, что в имени файла был использован недопустимый символ вроде «\» или «:») результатом будет false. Если ХМ L-файл с именем name уже существует, то он будет перезаписан.

4. Нажав Ctrl + Enter, войдите в режим тестирования. Если компилятор не выдаст ошибок, значит, все было сделано верно. Вернитесь в среду разработки и посмотрите, что изменилось на панели Actions. В дереве языка слева должна появиться новая ветвь undocumented5. Откройте папку CustomActions папки ActionsPanel. Вы увидите, что в ней помимо XML-документов, отвечающих за инициализацию предопределенных компонентов, есть файлundocum.xml. Открыв его, вы обнаружите, что он хранит тот же текст, что и созданный выше undocumented.xml.

Как видите, инициализировать пользовательские и недокументированные элементы при помощи объекта CustomActions довольно просто. Конечно, выполняемую методом instaU() работу несложно проделать и «вручную», просто поместив описывающий необходимые элементы XML-докумснт в папку CustomActions. Однако у использования объекта CustomActions есть и свои достоинства. Во-первых, при этом инициализация не требует перезапуска Flash. Во-вторых, CustomActions дает возможность создать фильм, при помощи которого пользователь сможет, ничего не зная о принципах настройки панели Actions, инициализировать созданные вами компоненты или библиотеки классов. В принципе, код инициализации можно поместить даже в сам компонент.

Помимо install() у объекта CustomActions имеется еще три метода:

• list() — возвращает массив, содержащий имена всех ХМ L-фаилов, имеющихся в папке CustomActions. Если данная папка пустая, то возвращается пустой массив. При возникновении ошибки результатом будет undefined. Например:

trace(CustomActions.list()); // Выводит: Flash Date Components,
// FlashJavaScript, Screens, UlComponents, undocun

Метод list() может быть полезен, если вы хотите изменить или удалить один из созданных вами документов инициализации, но забыли, как он точно называется;

• get(«name») — возвращает текст XML-документа с именем name.xml, принадлежащий папке CustomActions, как строку. Используется, если необходимо внести в документ инициализации изменения или просто просмотреть его. Например:

Значек JSFL- файла trace(CustomActions.get("undocum")); // В Output появляется текст // документа undocum.xml

• uninstall(«name») — удаляет из папки CustomActions документ name.xml. Если удаление проходит успешно, то метод возвращает true. Если имя файла было задано неверно (или он попросту не существует), результатом будет false.

Если вы не собираетесь использовать ветвь undocumented в дальнейшем, то удалите ее, выполнив в режиме тестирования следующий код:

CustomActions.uninstall("undocum");

Вернувшись в среду разработки, вы увидите, что ветвь undocumented исчезла. Не будет файла undocum.xml и в папке CustomActions.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Action Script на эту тему:
Взаимодействие с принтером
Взаимодействие со средой разработки
Взаимодействие со средствами чтения с экрана
Определение размеров фильма и величины окна плейера
Получение информации об использующемся аппаратном и программном обеспечении