Уроки Flash: Как выровнять?

Источник: arttower

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

Этим уроком я начинаю серию рассказов "как сделать?" - о том, как сделать что-либо в Flash несколькими способами.
Здесь не будет много скриншотов-"комиксов", ибо в большинстве случаев все понятно и без них - и их я буду использовать только по необходимости.

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

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

Дополнения и замечания привествуются.

Выравнивание по центру сцены

1) Через панель Align: выбрать объект, вызвать панель Window->Align, отметить опцию "Align to Stage", нажать кнопку соответствующего выравнивания.
То же на клавиатуре: Ctrl+K (чтобы видеть значение "Align to Stage"), Ctrl+Shift+8 (по необходиости), Ctrl+Shift+2 (по вертикали) / Ctrl+Shift+5 (по горизонтали)
2) Через Proprties: в некоторых случаях значения ширины объекта настолько "круглые", что вычислить в уме по формуле (W-w)/2 (где W - ширина сцены, w - ширина объекта) или аналогичной для высот сцены и объекта быстрее, чем "ползать" по меню или даже "играть аккордами" на клавиатуре - в этом случае "вбить" необходимое значение в поле "X:" вкладки "Properties" (у кого как, а у меня эта вкладка и таймлайн практически всегда открыта)
3) Программно:

CODE
my_mc._x = (Stage.width - my_mc._width)/2;
my_mc._y = (Stage.height - my_mc._height)/2;

Выравнивание объектов между собой

1) Сводится к тем же процедурам, только опция "Align to Stage" должна быть выключена. При этом не забывайте об известной оригинальной особенности флэш: шейпы одного цвета на одном слое при наложении сливаются, разных цветов - то, что лежит выше (в том же слое, но), вырезает при снятии выделения (выбора) "дырку" в том, что ниже - т.е. работает аналогично функции trim для путей в других векторных редакторах.
2) Программно:

CODE
my_mc2._x = my_mc._x+(my_mc._width - my_mc2._width)/2;
my_mc2._y = my_mc._y+(my_mc._height - my_mc2._height)/2;

Можно еще выравнивать с помощью направляющих (guides) и сетки (grid), но об использовании того и другого мы поговорим в другой раз отдельно.

Выравнивание текста

Текст (уже отцентрированный по текстовому полю опцией в Properties) выравнивать горизонтально по центру лучше всего, перемещая хэндлы текстового поля. Т.о. можно выровнять текст с учетом округлых и заостренных элементов, т.е. зрительно, а не только геометрически.

Выравнивание текста внутри блока можно задавать для динамического текста с включенной опцией "render as HTML" через атрибуты HTML-тэга <P> - напр., так:

CODE
_root.txt_var = "<p align='center'>hello world</p>";
/*
при txt_var - переменная текстового поля
в этом случае опция выравния из Properties игнорируется
*/

или

CODE

_root.txt.htmlText = "<P align='center'>Hello world</P>";
/*
где txt - имя текстового поля.

замечание: конструкция вида
_root.txt.htmlText = "<P align='center'>"+_root.txt.htmlText+"</P>";
не работает так, как ожидается!

*/

В случае выравнивания части текста внутри параграфа придется использовать отдельный параграф - по неизвестной причине тэг <span> в флэш-интерпретации атрибут align не поддерживает.

Для включения режима "render as HTML" программно используется такое выражение:

CODE

_root.txt.html = true;

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

 

Автором урока является Des.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=9220