Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лк - Стили компонентов TextFormat.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
128 Кб
Скачать

Применение стиля ко всем компонентам одного класса

В некоторых случаях бывает удобно применить стиль одновременно ко всем компонентам одного класса (например, к кнопкам). Это актуально и при программном создании экземпляров компонентов. Для выполнения этой задачи используется специальный объект – менеджер стиля. Чтобы его использовать, его нужно прежде всего импортировать:

import fl.managers.StyleManager;

Объект StyleManager – менеджер стилей, содержит метод setComponentStyle, который имеет следующий синтаксис:

StyleManager.setComponentStyle(<класс>, <имя_свойства>,

<значение_свойства>);

Здесь класс – это имя класса компонента, ко всем экземплярам которого применяется стиль, имя_свойства – имя свойства стиля, _значение свойства – значение свойства стиля.

Пример. Применение стиля шрифта ко всем кнопкам.

import fl.managers.StyleManager;

import fl.controls.Button;

// создание стиля шрифта

var tf:TextFormat = new TextFormat();

tf.color = 0xFF0000;

tf.font = "Georgia";

tf.bold = true;

// применение стиля шрифта ко всем кнопкам

StyleManager.setComponentStyle(Button, "textFormat", tf);

// программное создание кнопок

for (var i=0; i<10; i++)

{

var but:Button = new Button();

but.x = Math.random()*stage.stageWidth;

but.y = Math.random()*stage.stageHeight;

but.label = "Кнопка "+i;

addChild(but);

}

Замечание. К экземплярам компонентов, созданных программным способом, стиль, заданный в методе setComponentStyle применяется только в том случае, если на временной шкале фильма присутствует хотя бы один экземпляр этого компонента. То есть если присутствует экземпляр компонента, не созданный программным способом.

Применение стиля ко всем компонентам приложения

Из рассказанного выше видно, что многие стили являются общими для всех или почти всех компонентов (например, стили «textFormat», «disabledTextFormat» и «textPadding»). Очевидно, во многих случаях будет удобным применить общие настройки стиля одновременно ко всем компонентам приложения.

Для такого глобального задания стиля используется тот же менеждер стилей, что и в предыдущем разделе, но вместо метода setComponentStyle используется метод setStyle, синтаксис которого полностью соответствует синтаксису одноименного метода у любого из компонентов. В отличие от метода setComponentStyle, стили, задаваемые при помощи метода setStyle, применяются абсолютно ко всем компонентам, созданным программным или непрограммным способом.

Пример. Применение стиля текста ко всем компонентам приложения

import fl.managers.StyleManager;

var tf:TextFormat = new TextFormat();

tf.color = 0xFF9999;

tf.italic = true;

StyleManager.setStyle("textFormat", tf);

var dtf:TextFormat = new TextFormat();

dtf.color = 0xFFDDDD;

dtf.italic = true;

StyleManager.setStyle("disabledTextFormat", dtf);

Шкуры компонентов

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

Таким образом, «шкуру» компонента, используемую по умолчанию, можно заменить на собственную, созданную пользователем.

Набор изображений, составляющих «шкуру», представляет собой обычные клипы. Во Flash шкуры можно создавать двумя разными способами:

- без использования программирования;

- с использованием программирования.

В данной работе рассмотрим только первый вариант.

Замена шкур компонентов

Выполняется такая замена очень просто очень просто. Когда компонент помещен в библиотеку, в папке Component Asstets автоматически появляется подкаталоги и дополнительные клипы, содержащие шкуры. Вне этого каталога размещаются клипы, имена которых совпадают с именами компонентов. Эти клипы являются контейнерами для шкур.

На рисунке внизу – внешний вид библиотеки после добавления в нее компонента Button.

Клип Button – это контейнер для всех шкур компонента. Шкуры внутри подписаны.

Каталог Component Assets содержит следующие подкаталоги:

- _private – содержит некоторые общие элементы компонентов, его содержимое лучше не затрагивать;

- ButtonSkins – каталог, содержащий клипы – шкуры компонента;

- Shared - дополнительные общие элементы, в данном случае там будет находиться шкура рамки выделения – клип с именем focusRectSkin.

Некоторые компоненты содержат большое количество элементов. Посмотрим структуру библиотеки после того, как в нее был добавлен компонент List.

В каталоге Component Assets появляются несколько подкаталогов:

- ListSkins - шкуры самого компонента. Содержит только рамку;

- ScrollBarSkins - шкуры полосы прокрутки;

- CellRendererSkins - шкуры для выделения;

- Shared - дополнительные общие элементы (клип focusRectSkin и крафический символ arrowIcon, содержащий изображение стрелки на кнопке полосы прокрутки);

- _private – служебный каталог.

Помимо подкаталогов, в каталоге Component Assets появились два дополнительных клипа: CellRenderer – контейнер для шкур области выделения и ScrollBar – контейнер для шкур полосы прокрутки. И область выделения и полоса прокрутки не являются самостоятельными компонентами, но используются как составные части многих компонентов.

Редактируя клип- шкуру компонента, вы можете изменить и шкуры всех компонентов, зависимых от данного компонента. Например, одними из наиболее часто используемых шкур являются шкуры компонента-рамки (border). Изменив эту шкуру, вы поменяете внешний вид многих компонентов, которые имеют рамку (это и поле ввода, и список и поле со списком и т.д.).

Чтобы экспортировать шкуру в другой фильм, нужно скопировать все необходимые папки из библиотеки текущего проекта в новый фильм. Или, что гораздо проще, скопировать один лишь клип-контейнер (это тот клип, имя которого совпадает с именем компонента).

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

Выбор пункта "Use existing component" (использовать текущий компонент) позволит использовать уже имеющуюся шкуру для вновь добавляемого компонента. Выбор пункта “Replace existing Component” заменит созданную шкуру компонентов на стандартную. Это значит, что все экземпляры компонента будут иметь стандартную шкуру, включая те, которые были созданы заранее.