Пакет | flash.text |
Класс | public dynamic class StyleSheet |
Наследование | StyleSheet EventDispatcher Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Чтобы применить стили к объекту TextField, назначьте объект StyleSheet его свойству styleSheet
.
Примечание. Текстовое поле с таблицей стилей не подлежит редактированию. Другими словами, текстовое поле со свойством type
в значении TextFieldType.INPUT
применяет объект StyleSheet к тексту по умолчанию для поля, но его содержимое больше не будет доступно для редактирования. Для назначения стилей текстовым полям ввода можно использовать класс TextFormat.
Проигрыватель Flash Player поддерживает подгруппу свойств в исходной спецификации CSS1 (www.w3.org/TR/REC-CSS1). В следующей таблице перечислены поддерживаемые свойства и значения CSS, а также имена соответствующих им свойств ActionScript. (Каждое имя свойства ActionScript является производным от соответствующего имени свойства CSS. Если имя содержит дефис, он опускается, а следующая за ним буква становится заглавной.)
Свойство CSS | Свойство ActionScript | Применение и поддерживаемые значения |
---|---|---|
color
|
color
| Поддерживаются только шестнадцатеричные значения цвета. Именованные цвета (например, blue — синий) не поддерживаются. Цвета записываются в следующем формате: #FF0000 . |
display
|
display
| Поддерживаются следующие значения: inline , block и none . |
font-family
|
fontFamily
| Разделенный запятыми список шрифтов для использования, перечисленных в порядке убывания по предпочтению. Может использоваться любое имя гарнитуры шрифтов. При указании общего имени шрифта оно преобразовывается в соответствующий шрифт устройства. Поддерживаются следующие преобразования шрифтов: mono преобразуется в _typewriter , sans-serif — в _sans , а serif — в _serif . |
font-size
|
fontSize
| Используется только числовая часть значения. Единицы (пиксели, точки) не анализируются. Пиксели эквивалентны точкам. |
font-style
|
fontStyle
| Распознаются значения normal (обычный) и italic (курсив). |
font-weight
|
fontWeight
| Допустимыми значениями являются normal и bold . |
kerning
|
kerning
| Распознаются значения true и false . Кернинг поддерживается только для встроенных шрифтов. Некоторые шрифты, такие как Courier New, не поддерживают кернинг. Свойство kerning поддерживается только в SWF-файлах, созданных в ОС Windows, а в созданных в ОС Macintosh — нет. Однако эти SWF-файлы могут воспроизводиться с применением кернинга и в версиях проигрывателя Flash Player, не предназначенных не для Windows. |
leading
|
leading
| Пространство, равномерно распределяемое между строками. Это значение задает количество пикселей, добавляемых после каждой строки. Отрицательное значение уплотняет межстрочное пространство. Используется только числовая часть значения. Единицы (пиксели, точки) не анализируются. Пиксели эквивалентны точкам. |
letter-spacing
|
letterSpacing
| Пространство, равномерно распределяемое между символами. Это значение задает количество пикселей, добавляемых после каждого символа. Отрицательное значение уплотняет пространство между символами. Используется только числовая часть значения. Единицы (пиксели, точки) не анализируются. Пиксели эквивалентны точкам. |
margin-left
|
marginLeft
| Используется только числовая часть значения. Единицы (пиксели, точки) не анализируются. Пиксели эквивалентны точкам. |
margin-right
|
marginRight
| Используется только числовая часть значения. Единицы (пиксели, точки) не анализируются. Пиксели эквивалентны точкам. |
text-align
|
textAlign
| Распознаются значения left , center , right и justify . |
text-decoration
|
textDecoration
| Распознаются значения none и underline . |
text-indent
|
textIndent
| Используется только числовая часть значения. Единицы (пиксели, точки) не анализируются. Пиксели эквивалентны точкам. |
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
styleNames : Array [только для чтения]
Массив, содержащий имена (в виде строк) всех стилей, зарегистрированных в этой таблице стилей. | StyleSheet |
Метод | Определено | ||
---|---|---|---|
Создает новый объект StyleSheet. | StyleSheet | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Удаляет все стили из объекта StyleSheet. | StyleSheet | ||
Посылает событие в поток событий. | EventDispatcher | ||
Возвращает копию объекта стиля, связанного со стилем с именем styleName. | StyleSheet | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Выполняет синтаксический анализ CSS в параметре CSSText и заполняет таблицу стилей полученными данными. | StyleSheet | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Добавляет новый стиль с заданным именем в объект StyleSheet. | StyleSheet | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Расширяет возможности лексического анализа CSS. | StyleSheet | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
styleNames | свойство |
StyleSheet | () | Конструктор |
public function StyleSheet()
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает новый объект StyleSheet.
Связанные элементы API
clear | () | метод |
public function clear():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Удаляет все стили из объекта StyleSheet.
getStyle | () | метод |
public function getStyle(styleName:String):Object
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает копию объекта стиля, связанного со стилем с именем styleName
. Если с styleName
не связан объект стиля, возвращается значение null
.
Параметры
styleName:String — Строка, задающая имя стиля, который нужно получить.
|
Object — Объект.
|
Связанные элементы API
Пример
Использование этого примера
См. примеры метода parseCSS() или transform(), иллюстрирующие использование
getStyle()
.
parseCSS | () | метод |
public function parseCSS(CSSText:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Выполняет синтаксический анализ CSS в параметре CSSText
и заполняет таблицу стилей полученными данными. Если стиль из CSSText
уже занесен в styleSheet
, свойства в styleSheet
сохраняются, и в styleSheet
добавляются или изменяются только те свойства, которые перечислены в CSSText
.
Чтобы расширить собственные возможности синтаксического анализа CSS, можно переопределить этот метод путем создания подкласса StyleSheet.
Параметры
CSSText:String — Текст CSS для анализа (строка).
|
Пример ( Использование этого примера )
В конструкторе создается многострочное текстовое поле, его содержимое форматируется в виде HTML-строки. (HTML-теги заголовка и диапазона не визуализируются до применения стиля CSS.) Для определения местоположения CSS-файла создается объект URLRequest
. В данном примере он CSS-файл находится в том же каталоге, что и SWF-файл. Файл загружается с помощью объекта URLLoader
. Для объекта URLLoader с именем loader
добавляется два прослушивателя событий. При возникновении ошибки ввода-вывода вызывается метод errorHandler()
, отображающий сообщение об ошибке в текстовом поле. Когда все данные будут получены и помещены в свойство data объекта URLLoader с именем loader
, вызывается метод loaderCompleteHandler()
. Этот метод выделяет стили CSS из данных, загруженных из файла, и заполняет объект StyleSheet с именем sheet
определениями стилей.
Когда пользователь щелкает текстовое поле, запускается метод clickHandler()
. Инструкция if в методе clickHandler()
проверяет, завершена ли загрузка файла, перед применением таблицы стилей к текстовому полю. Чтобы таблица стилей вступила в силу, необходимо повторно назначить содержимое свойству htmlText
после того, как текстовому полю будет назначена таблица стилей. Значения свойств CSS font-family
и color
для тега заголовка также добавляются к содержимому текстового поля. (Эти свойства будут иметь значение undefined, если значения таблицы стилей не вступили в силу.)
В следующем примере демонстрируется содержимое CSS-файла, которое может использоваться в этом случае. Перед выполнением этого примера создайте текстовый файл, скопируйте в него следующее содержимое CSS, а затем сохраните его с именем test.css
в том же каталоге, что и SWF-файл.
p { font-family: Times New Roman, Times, _serif; font-size: 14; font-Style: italic; margin-left: 10; } h1 { font-family: Arial, Helvetica, _sans; font-size: 20; font-weight: bold; } .bluetext { color: #0000CC; }
package { import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.IOErrorEvent; import flash.events.Event; import flash.events.MouseEvent; public class StyleSheet_parseCSSExample extends Sprite { private var loader:URLLoader = new URLLoader(); private var field:TextField = new TextField(); private var exampleText:String = "<h1>This is a headline</h1>" + "<p>This is a line of text. <span class='bluetext'>" + "This line of text is colored blue.</span></p>"; private var sheet:StyleSheet = new StyleSheet(); private var cssReady:Boolean = false; public function StyleSheet_parseCSSExample() { field.x = 10; field.y = 10; field.background = true; field.multiline = true; field.autoSize = TextFieldAutoSize.LEFT; field.htmlText = exampleText; field.addEventListener(MouseEvent.CLICK, clickHandler); addChild(field); var req:URLRequest = new URLRequest("test.css"); loader.load(req); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); } public function errorHandler(e:IOErrorEvent):void { field.htmlText = "Couldn't load the style sheet file."; } public function loaderCompleteHandler(event:Event):void { sheet.parseCSS(loader.data); cssReady = true; } public function clickHandler(e:MouseEvent):void { if (cssReady) { field.styleSheet = sheet; field.htmlText = exampleText; var style:Object = sheet.getStyle("h1"); field.htmlText += "<p>Headline font-family is: " + style.fontFamily + "</p>"; field.htmlText += "<p>Headline color is: " + style.color + "</p>"; } else { field.htmlText = "Couldn't apply the CSS styles."; } } } }
setStyle | () | метод |
public function setStyle(styleName:String, styleObject:Object):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Добавляет новый стиль с заданным именем в объект StyleSheet. Если названный стиль еще не существует в таблице стилей, он добавляется в нее. Если названный стиль уже существует в таблице стилей, он заменяется новым. Если параметр styleObject
имеет значение null
, названный стиль удаляется.
Проигрыватель Flash Player создает копию объекта стиля, передаваемого этому методу.
Поддерживаемые стили перечислены в таблице в описании класса StyleSheet.
Параметры
styleName:String — Строка, задающая имя стиля для добавления в таблицу стилей.
| |
styleObject:Object — Объект, описывающий стиль, или null .
|
transform | () | метод |
public function transform(formatObject:Object):flash.text:TextFormat
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Расширяет возможности лексического анализа CSS. Опытные разработчики могут переопределить этот метод путем расширения класса StyleSheet.
Параметры
formatObject:Object — Объект, описывающий стиль, содержащий правила стилей в виде свойств объекта, или null .
|
flash.text:TextFormat — Объект TextFormat, содержащий результат наложения правил CSS на свойства форматирования текста.
|
Связанные элементы API
Пример ( Использование этого примера )
transform()
используется для применения стиля из CSS-файла к объекту TextFormat для текстового поля.
Стили CSS обычно используются для форматирования HTML-содержимого. Однако с помощью метода transform()
объекта StyleSheet конкретные стили CSS можно назначить объекту TextFormat, а затем применить к любому текстовому полю.
Для загрузки CSS-файла используются объекты URLRequest
и URLLoader
. Добавляется прослушиватель для события Event.COMPLETE
, которое происходит после получения всех данных и их помещения в свойство data объекта URLLoader с именем loader
. После этого метод loaderCompleteHandler()
выполняет разбор данных, загруженных из CSS- файла и заполняет стилями объект StyleSheet с именем sheet
. Метод getStyle()
таблицы стилей получает стили абзацев HTML, которые назначаются объекту TextFormat с именем cssFormat
с помощью метода transform()
таблицы стилей. В завершение, для текстового поля inputField
назначается новый формат текста по умолчанию — cssFormat
.
package { import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFormat; import flash.text.TextFieldType; import flash.events.IOErrorEvent; import flash.events.Event; public class StyleSheet_transformExample extends Sprite { private var loader:URLLoader = new URLLoader(); private var inputField:TextField = new TextField(); private var sheet:StyleSheet = new StyleSheet(); public function StyleSheet_transformExample() { inputField.x = 10; inputField.y = 10; inputField.background = true; inputField.width = 300; inputField.height = 200; inputField.wordWrap = true; inputField.multiline = true; inputField.type = TextFieldType.INPUT; addChild(inputField); var req:URLRequest = new URLRequest("test.css"); loader.load(req); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); } public function errorHandler(e:IOErrorEvent):void { inputField.htmlText = "Couldn't load the style sheet file."; } public function loaderCompleteHandler(event:Event):void { var cssFormat:TextFormat = new TextFormat(); sheet.parseCSS(loader.data); var style:Object = sheet.getStyle("p"); cssFormat = sheet.transform(style); inputField.defaultTextFormat = cssFormat; } } }
package { import flash.display.Sprite; import flash.text.StyleSheet; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class StyleSheetExample extends Sprite { public function StyleSheetExample() { var style:StyleSheet = new StyleSheet(); var heading:Object = new Object(); heading.fontWeight = "bold"; heading.color = "#FF0000"; var body:Object = new Object(); body.fontStyle = "italic"; style.setStyle(".heading", heading); style.setStyle("body", body); var label:TextField = new TextField(); label.styleSheet = style; label.htmlText = "<body><span class='heading'>Hello </span>World...</body>"; addChild(label); } } }
Tue Jun 12 2018, 11:34 AM Z