Пакет | flashx.textLayout.compose |
Интерфейс | public interface IFlowComposer |
Средство реализации | StandardFlowComposer |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Текстовые потоки, отображаемые посредством реализации компоновщика потока, могут быть динамическими и интерактивными. Компоновщик потока управляет одним или несколькими видеоконтроллерами. Каждый контроллер связан с контейнером экранных объектов (например, Sprite), что, в конечном счете, позволяет отображать строки, создаваемые для текстового потока. Следующая схема иллюстрирует связь между объектами TextFlow, IFlowComposer, ContainerController и DisplayObjectContainer:
Компоновщик потока определяет, какая часть текстового потока соответствует каждому контейнеру, и добавляет соответствующие текстовые строки к экранному объекту контейнера. Интерфейс IFlowComposer определяет отдельные методы для вычисления макетов и обновления экрана. IFlowComposer также определяет методы для поэтапной компоновки и обновления текстового потока. Эти методы могут использоваться для предотвращения блокировки пользовательского интерфейса при обновлении длинных текстовых потоков.
В дополнение к управлению формированием и отображением текста, компоновщик потока управляет передачей фокуса на контейнеры и выделением диапазона (который может выходить за границы контейнера), а также обеспечивает прямой доступ ко всем объектам TextLine в потоке.
Для использования реализации IFlowComposer следует присвоить экземпляр этой реализации свойству flowComposer
объекта TextFlow. Выполните вызов метода updateAllControllers()
для размещения и отображения текста в контейнерах, присоединенных к компоновщику потока.
Примечание. Для простых статических текстовых потоков можно также использовать один из заводских классов текстовой строки. Эти классы фабрики обычно создают строки с меньшим количеством служебных данных, чем компоновщик потока, однако в этом случае редактирование, динамические изменения или взаимодействие с пользователем не поддерживаются.
Связанные элементы API
FlowComposerBase
StandardFlowComposer
TextFlow
StringTextLineFactory
TextFlowTextLineFactory
Свойство | Определено | ||
---|---|---|---|
composing : Boolean [только для чтения]
Значение true, если компоновщик потока в настоящее время выполняет операцию компоновки. | IFlowComposer | ||
damageAbsoluteStart : int [только для чтения]
Первая недопустимая позиция в корневом элементе как абсолютная позиция, отсчитываемая от начала потока. | IFlowComposer | ||
numControllers : int [только для чтения]
Количество контейнеров, присвоенных этому экземпляру IFlowComposer. | IFlowComposer | ||
numLines : int [только для чтения]
Общее количество строк, созданных в потоке. | IFlowComposer | ||
rootElement : ContainerFormattedElement [только для чтения]
Корневой элемент, связанный с данным экземпляром IFlowComposer. | IFlowComposer | ||
swfContext : ISWFContext
Экземпляр ISWFContext, используемый для вызовов, которые необходимо выполнить в специальном контексте SWF. Реализации IFlowComposer позволяют установить это свойство таким образом, чтобы пользователи интерфейса могли создавать строки в контексте SWF, отличном от содержащего реализацию. | IFlowComposer |
Метод | Определено | ||
---|---|---|---|
Добавляет контроллер к этому экземпляру IFlowComposer. | IFlowComposer | ||
Добавляет контроллер к этому экземпляру IFlowComposer в указанной позиции индекса. | IFlowComposer | ||
Вычисляет количество строк, необходимое для отображения содержимого корневого элемента потока, и указывает позиции этих строк в контейнерах отображения потока. | IFlowComposer | ||
Выполняет компоновку содержимого корневого элемента, включая контейнер в указанной позиции индекса. | IFlowComposer | ||
Выполняет компоновку содержимого корневого элемента вплоть до указанной позиции. | IFlowComposer | ||
Пометить строки как поврежденные и требующие восстановления. | IFlowComposer | ||
Возвращает индекс контроллера, включающего содержимое в указанной позиции. | IFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Возвращает объект TextFlowLine, включающий содержимое в указанной позиции. | IFlowComposer | ||
Возвращает порядковый номер строки объекта TextFlowLine, который включает содержимое в указанной позиции. | IFlowComposer | ||
Возвращает объект ContainerController в указанной позиции индекса. | IFlowComposer | ||
Возвращает индекс указанного объекта ContainerController. | IFlowComposer | ||
Возвращает строку с указанным номером. | IFlowComposer | ||
Вызывается TextFlow при изменении диспетчера операций. | IFlowComposer | ||
Указывает, отмечены ли какие-либо объекты TextFlowLine между началом потока и строкой, включающей содержимое в указанной позиции, как поврежденные. | IFlowComposer | ||
Удаляет все контроллеры из этого экземпляра IFlowComposer. | IFlowComposer | ||
Удаляет контроллер из этого экземпляра IFlowComposer. | IFlowComposer | ||
Удаляет контроллер в указанной позиции индекса из этого экземпляра IFlowComposer. | IFlowComposer | ||
Устанавливает фокус на контейнер, который содержит местоположение, указанное параметром absolutePosition. | IFlowComposer | ||
IFlowComposer | |||
Выполняет компоновку содержимого корневого элемента и обновляет экран. | IFlowComposer | ||
Обновляет значения длины строк для поддержания отображения в TextFlow. | IFlowComposer | ||
Выполняет компоновку и обновление отображения, включая контейнер в указанной позиции индекса. | IFlowComposer |
composing | свойство |
damageAbsoluteStart | свойство |
numControllers | свойство |
numLines | свойство |
numLines:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Общее количество строк, созданных в потоке. По умолчанию TLF не создает весь поток и это значение может быть неточным. composeToPosition используется для получения всех созданных строк.
Реализация
public function get numLines():int
rootElement | свойство |
rootElement:ContainerFormattedElement
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Корневой элемент, связанный с данным экземпляром IFlowComposer.
Корневым элементом может быть только объект TextFlow.
Реализация
public function get rootElement():ContainerFormattedElement
Связанные элементы API
swfContext | свойство |
swfContext:ISWFContext
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Экземпляр ISWFContext, используемый для вызовов, которые необходимо выполнить в специальном контексте SWF
Реализации IFlowComposer должны обеспечить установку этого свойства таким образом, чтобы пользователи интерфейса могли создавать строки в контексте SWF, отличном от контекста, содержащего реализацию. Кроме того, должна предоставляться реализация ISWFContext по умолчанию.
Реализация
public function get swfContext():ISWFContext
public function set swfContext(value:ISWFContext):void
Связанные элементы API
addController | () | метод |
public function addController(controller:ContainerController):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Добавляет контроллер к этому экземпляру IFlowComposer.
Контейнер добавляется в конец списка контейнеров.
Параметры
controller:ContainerController — Добавляемый объект ContainerController.
|
addControllerAt | () | метод |
public function addControllerAt(controller:ContainerController, index:int):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Добавляет контроллер к этому экземпляру IFlowComposer в указанной позиции индекса.
Список контроллеров формируется с нуля (первый контроллер имеет индекс 0).
Параметры
controller:ContainerController — Добавляемый объект ContainerController.
| |
index:int — Числовой индекс, указывающий позицию в списке контроллера для вставки объекта ContainerController.
|
compose | () | метод |
public function compose():Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Вычисляет количество строк, необходимое для отображения содержимого корневого элемента потока, и указывает позиции этих строк в контейнерах отображения потока.
Реализации этого метода не обновляют изображение на экране, однако они сохраняют результаты, таким образом, при последующих вызовах методов compose()
или updateAllControllers()
не требуется выполнять повторную компоновку, если содержимое потока не изменилось.
Если содержимое какого-либо из контейнеров изменилось, метод должен возвращать значение true
.
Boolean — true при изменении значения.
|
Связанные элементы API
composeToController | () | метод |
public function composeToController(index:int):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Выполняет компоновку содержимого корневого элемента, включая контейнер в указанной позиции индекса.
Если содержимое какого-либо из контейнеров, включая контейнер в указанной позиции индекса, изменилось, метод возвращает значение true
. Если index
превышает количество контроллеров (или он не указан), тогда выполняется компоновка всех контейнеров.
Параметры
index:int (default = NaN ) — Выполняется компоновка, по крайней мере, до этого контейнера в TextFlow. Если controllerIndex превышает количество контроллеров, компоновка выполняется до конца последнего контейнера.
|
Boolean — true при изменении значения.
|
Связанные элементы API
composeToPosition | () | метод |
public function composeToPosition(absolutePosition:int):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Выполняет компоновку содержимого корневого элемента вплоть до указанной позиции.
Если содержимое какого-либо контейнера, включая контейнер, которому принадлежит содержимое в указанной позиции, изменилось, метод возвращает значение true
. Если absolutePosition
превышает длину TextFlow (или данные не указаны), тогда выполняется компоновка всего потока.
Параметры
absolutePosition:int (default = NaN ) — Выполняется компоновка, по крайней мере, до этой позиции в TextFlow. По умолчанию, или если absolutePosition находится за пределами конца потока, компоновка выполняется до конца потока.
|
Boolean — true при изменении значения.
|
Связанные элементы API
damage | () | метод |
public function damage(startPosition:int, damageLength:int, damageType:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Пометить строки как поврежденные и требующие восстановления.
Параметры
startPosition:int — начало поврежденного диапазона
| |
damageLength:int — число поврежденных символов
| |
damageType:String — тип повреждения. Один из flashx.textLayout.compose.FlowDamageType
|
Связанные элементы API
findControllerIndexAtPosition | () | метод |
public function findControllerIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Возвращает индекс контроллера, включающего содержимое в указанной позиции.
Позиция может рассматриваться в качестве разделителя между двумя символами или другими элементами текстового потока. Если значение в absolutePosition
является позицией между последним символом одного контейнера и первым символом следующего, то в том случае, если параметр preferPrevious
имеет значение true
, возвращается предшествующий контейнер, а в том случае, если для параметра preferPrevious
установлено значение false
, возвращается последующий контейнер.
Метод возвращает значение -1, если содержимое в указанной позиции не принадлежит ни одному из контейнеров или находится за пределами диапазона позиций в текстовом потоке.
Параметры
absolutePosition:int — Позиция содержимого, для которого обнаружен индекс контейнера.
| |
preferPrevious:Boolean (default = false ) — Указывает индекс контейнера для возврата, если позиция находится между последним элементом одного контейнера и первым элементом следующего.
|
int — Индекс контроллера контейнера, либо-1, если таковой не обнаружен.
|
findLineAtPosition | () | метод |
public function findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Возвращает объект TextFlowLine, включающий содержимое в указанной позиции.
Позиция может рассматриваться в качестве разделителя между двумя символами или другими элементами текстового потока. Если значение absolutePosition
является позицией между последним элементом одной строки и первым элементом следующей, то возвращается предшествующая строка в том случае, если параметр preferPrevious
имеет значение true
, если же параметр preferPrevious
имеет значение false
, возвращается последующая строка.
Параметры
absolutePosition:int — Позиция содержимого, для которой требуется определить объект TextFlowLine.
| |
preferPrevious:Boolean (default = false ) — Указывает возвращаемую строку, если позиция находится между последним элементом одной линии и первым элементом следующей.
|
flashx.textLayout.compose:TextFlowLine — TextFlowLine, включающий содержимое в указанной позиции, либо null, если не найдено.
|
findLineIndexAtPosition | () | метод |
public function findLineIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Возвращает порядковый номер строки объекта TextFlowLine, который включает содержимое в указанной позиции.
Номер первой строки равен 0, номер последней строки равен количеству строк минус один. Если позиция, указанная значением absolutePosition
, находится за пределами конца текстового потока, этот метод возвращает номер, который будет присвоен следующей новой строке, добавляемой к текстовому потоку (равный количеству текущих строк).
Позиция может рассматриваться в качестве разделителя между двумя символами или другими элементами текстового потока. Если значение в absolutePosition
является позицией между последней строкой одного контейнера и первой строкой следующего, то в случае, если параметр preferPrevious
имеет значение true
, возвращается предшествующий контейнер, а в том случае, если для параметра preferPrevious
установлено значение false
, возвращается последующий контейнер.
Параметры
absolutePosition:int — Позиция содержимого, для которой требуется определить текстовую строку.
| |
preferPrevious:Boolean (default = false ) — Указывает индекс контейнера для возврата, если позиция находится между последней строкой одного контейнера и первой строкой следующего.
|
int — Индекс текстовой строки в указанной позиции. Если не найден, обрабатывается как значение за пределами конца строки, и возвращается количество строк.
|
getControllerAt | () | метод |
public function getControllerAt(index:int):ContainerController
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Возвращает объект ContainerController в указанной позиции индекса.
Параметры
index:int — Индекс возвращаемого объекта ContainerController.
|
ContainerController — Объект ContainerController в указанной позиции.
|
getControllerIndex | () | метод |
public function getControllerIndex(controller:ContainerController):int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Возвращает индекс указанного объекта ContainerController.
Параметры
controller:ContainerController — Ссылка на объект ContainerController, который требуется найти.
|
int — Индекс указанного объекта ContainerController, либо -1, если контроллер не присоединен к этому компоновщику потока.
|
getLineAt | () | метод |
public function getLineAt(index:int):flashx.textLayout.compose:TextFlowLine
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Возвращает строку с указанным номером.
Список строк нумеруется от нуля до значения, равного количеству строк минус один. Если значение index
находится за пределами списка строк, то эта функция возвращает null
.
Параметры
index:int — Номер возвращаемой строки объекта TextFlowLine.
|
flashx.textLayout.compose:TextFlowLine — TextFlowLine с указанным номером строки, либо null , если значение не найдено.
|
interactionManagerChanged | () | метод |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Вызывается TextFlow при изменении диспетчера операций.
Реализации IFlowComposer должны обновлять прослушиватели событий и свойства, ссылающиеся на диспетчер операций.
Параметры
newInteractionManager:ISelectionManager — Новый экземпляр ISelectionManager.
|
isDamaged | () | метод |
public function isDamaged(absolutePosition:int):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Указывает, отмечены ли какие-либо объекты TextFlowLine между началом потока и строкой, включающей содержимое в указанной позиции, как поврежденные.
Параметры
absolutePosition:int — Последняя позиция в рассматриваемой области.
|
Boolean — true, если любой из объектов TextFlowLine с начала потока до строки, включающей содержимое в позиции absolutePosition , отмечен как поврежденный.
|
removeAllControllers | () | метод |
public function removeAllControllers():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Удаляет все контроллеры из этого экземпляра IFlowComposer.
removeController | () | метод |
public function removeController(controller:ContainerController):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Удаляет контроллер из этого экземпляра IFlowComposer.
Параметры
controller:ContainerController — Удаляемый экземпляр ContainerController.
|
removeControllerAt | () | метод |
setFocus | () | метод |
public function setFocus(absolutePosition:int, preferPrevious:Boolean = false):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Устанавливает фокус на контейнер, который содержит местоположение, указанное параметром absolutePosition
.
Установка фокуса должна выполняться реализацией. Например, реализация может использовать встроенное свойство focus
объекта Stage (при условии, что контейнеры являлись объектами InteractiveObject), либо управление фокусировкой может осуществляться другим способом.
Параметры
absolutePosition:int — Указывает позицию в текстовом потоке контейнера, в которую должен быть передан фокус.
| |
preferPrevious:Boolean (default = false ) — Если установлено значение true, и позиция находится перед первым символом в контейнере, фокус устанавливается на конец предыдущего контейнера.
|
Связанные элементы API
setRootElement | () | метод |
public function setRootElement(newRootElement:ContainerFormattedElement):void
Параметры
newRootElement:ContainerFormattedElement |
updateAllControllers | () | метод |
public function updateAllControllers():Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Выполняет компоновку содержимого корневого элемента и обновляет экран.
Формирование макета текста, как правило, включает две фазы: компоновку и отображение. На этапе компоновки компоновщик потока вычисляет количество строк, необходимое для отображения содержимого корневого элемента потока, а также позиции этих строк в контейнерах отображения потока. На этапе отображения компоновщик потока обновляет дочерние элементы экранных объектов в их контейнерах. Метод updateAllControllers()
обеспечивает выполнение обеих фаз. При эффективной реализации изменения отслеживаются таким образом, что полный цикл компоновки и отображения выполняется только в случае необходимости.
Этот метод позволяет выполнять немедленное синхронное обновление всех текстовых строк и списка отображения.
При изменении содержимого какого-либо из контейнеров метод возвращает значение true
.
Boolean — true при изменении значения.
|
updateLengths | () | метод |
public function updateLengths(startPosition:int, deltaLength:int):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Обновляет значения длины строк для поддержания отображения в TextFlow.
Параметры
startPosition:int — Начало изменения длины
| |
deltaLength:int — Изменение числа символов.
|
updateToController | () | метод |
public function updateToController(index:int):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Выполняет компоновку и обновление отображения, включая контейнер в указанной позиции индекса.
Метод updateToController()
выполняет компоновку содержимого и обновляет отображение экрана таким образом, что обновляются все контейнеры, включая контейнер в указанной позиции индекса. Например, если имеется цепочка из двадцати контейнеров, и указан индекс 10, метод updateToController()
обеспечивает компоновку и отображение первых десяти контейнеров (в позициях индекса от 0 до 9). В этой точке компоновка прекращается. Если controllerIndex
имеет значение -1 (или его значение не указано), то обновляются все контейнеры.
Этот метод позволяет выполнять немедленное синхронное обновление всех текстовых строк и списка отображения.
При изменении содержимого какого-либо из контейнеров метод возвращает значение true
.
Параметры
index:int (default = NaN ) — Индекс последнего обновляемого контейнера, по умолчанию обновляются все контейнеры
|
Boolean — true при изменении значения.
|
Tue Jun 12 2018, 11:34 AM Z