1 Уроки Flash Как выровнять? Пт Окт 01, 2010 9:52 am
Admin
Admin
Почти любое действие можно сделать на компьютере разными способами. Иногда подходящий или неподходящий способ означает экономию или, наоборот, пустую трату значительного времени. И даже если речь о мелочах вроде пары лишних кликов мышкой - эти мелочи складываются в очень и очень ощутимые трудозатраты на сколько-нибудь значительном объеме работы.
Этим уроком я начинаю серию рассказов "как сделать?" - о том, как сделать что-либо в 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.]
Этим уроком я начинаю серию рассказов "как сделать?" - о том, как сделать что-либо в 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.]