Paquete | flashx.textLayout.compose |
Interfaz | public interface IFlowComposer |
Implementadores | StandardFlowComposer |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Los flujos de texto visualizados con una implementación de composición de flujo pueden ser dinámicos e interactivos. Una composición de flujo administra uno o varios controladores de visualización. Cada controlador está asociado a un contenedor de objetos de visualización (por ejemplo, un objeto Sprite) mediante el cual se visualizan en última instancia las líneas creadas para el flujo de texto. El siguiente diagrama muestra la relación existente entre los objetos TextFlow, IFlowComposer, ContainerController y DisplayObjectContainer:
Una composición de flujo calcula qué parte del flujo de texto se ajusta a cada contenedor y añade las líneas de texto necesarias al objeto de visualización del contenedor. La interfaz IFlowComposer define métodos independientes de cálculos de diseño y actualiza la visualización. IFlowComposer también define métodos para componer y actualizar un flujo de texto incrementalmente. Estos métodos se pueden utilizar para evitar bloquear la interfaz del usuario cuando se actualizan flujos de texto largos.
Además de administrar la composición y la visualización del texto, una composición de flujo también controla qué contenedor tiene la selección, administra la visualización de los elementos seleccionados (que pueden cruzar los límites del contenedor) y proporciona acceso directo a todos los objetos TextLine del flujo.
Para utilizar una implementación de IFlowComposer, asigne una instancia de dicha implementación a la propiedad flowComposer
de un objeto TextFlow. Llame al método updateAllControllers()
para diseñar y visualizar el texto en los contenedores conectados a la composición de flujo.
Nota: en el caso de flujos de texto estáticos sencillos, también se puede utilizar una de las clases de fábrica de línea de texto. Estas clases de fábrica normalmente crearán líneas con menor sobrecarga que una composición de flujo, pero no admite modificaciones dinámicas, edición ni interacción con el usuario.
Elementos de API relacionados
FlowComposerBase
StandardFlowComposer
TextFlow
StringTextLineFactory
TextFlowTextLineFactory
Propiedad | Definido por | ||
---|---|---|---|
composing : Boolean [solo lectura]
True, si la composición de flujo está actualmente en proceso de composición. | IFlowComposer | ||
damageAbsoluteStart : int [solo lectura]
La primera posición no válida del elemento raíz, como posición absoluta desde el comienzo del flujo. | IFlowComposer | ||
numControllers : int [solo lectura]
El número de contenedores asignados a esta instancia de IFlowComposer. | IFlowComposer | ||
numLines : int [solo lectura]
El número total de líneas compuestas en el flujo. | IFlowComposer | ||
rootElement : ContainerFormattedElement [solo lectura]
El elemento raíz asociado a esta instancia de IFlowComposer. | IFlowComposer | ||
swfContext : ISWFContext
La instancia de ISWFContext que se va a utilizar para las llamadas que deben hacerse en un determinado contexto SWF. Las implementaciones de IFlowComposer deben permitir que esta propiedad se pueda establecer para que los usuarios de la interfaz puedan crear líneas en un contexto SWF distinto del que contiene la implementación. | IFlowComposer |
Método | Definido por | ||
---|---|---|---|
Añade un controlador a esta instancia de IFlowComposer. | IFlowComposer | ||
Añade un controlador a esta instancia de IFlowComposer en el índice especificado. | IFlowComposer | ||
Calcula cuántas líneas se necesitan para visualizar el contenido en el elemento raíz del flujo y las posiciones que estas líneas ocupan en los contenedores de visualización del flujo. | IFlowComposer | ||
Compone el contenido desde el elemento raíz hasta el contenedor en el índice especificado (incluido). | IFlowComposer | ||
Compone el contenido del elemento raíz hasta la posición especificada. | IFlowComposer | ||
Marca las líneas como dañadas y que necesitan recomposición. | IFlowComposer | ||
Devuelve el índice del controlador que contiene el contenido en la posición especificada. | IFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Devuelve el objeto TextFlowLine que contiene el contenido en la posición especificada. | IFlowComposer | ||
Devuelve el número de línea secuencial del objeto TextFlowLine que contiene el contenido en la posición especificada. | IFlowComposer | ||
Devuelve el objeto ContainerController en el índice especificado. | IFlowComposer | ||
Devuelve el índice de la instancia de ContainerController especificada. | IFlowComposer | ||
Devuelve la línea con el número de línea especificado. | IFlowComposer | ||
Lo llama el objeto TextFlow cuando cambia el administrador de interacción. | IFlowComposer | ||
Indica si alguno de los objetos TextFlowLine entre el principio de la línea y la línea que contiene el contenido en la posición especificada están marcados como dañados. | IFlowComposer | ||
Elimina todos los controladores de esta instancia de IFlowComposer. | IFlowComposer | ||
Elimina un controlador de esta instancia de IFlowComposer. | IFlowComposer | ||
Elimina el controlador en el índice especificado de esta instancia de IFlowComposer. | IFlowComposer | ||
Establece la selección del contenedor que contiene la ubicación especificada por el parámetro absolutePosition. | IFlowComposer | ||
IFlowComposer | |||
Compone el contenido del elemento raíz y actualiza la visualización. | IFlowComposer | ||
Actualiza las longitudes de las líneas para conservar la asignación con el objeto TextFlow. | IFlowComposer | ||
Compone y actualiza la visualización hasta el contenedor en el índice especificado (incluido). | IFlowComposer |
composing | propiedad |
damageAbsoluteStart | propiedad |
numControllers | propiedad |
numLines | propiedad |
numLines:int
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
El número total de líneas compuestas en el flujo. De forma predeterminada, TLF no necesita redactar todo el flujo y este valor puede ser impreciso. Utilice composeToPosition para obtener todas las líneas creadas.
Implementación
public function get numLines():int
rootElement | propiedad |
rootElement:ContainerFormattedElement
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
El elemento raíz asociado a esta instancia de IFlowComposer.
Sólo un objeto TextFlow puede ser un elemento raíz.
Implementación
public function get rootElement():ContainerFormattedElement
Elementos de API relacionados
swfContext | propiedad |
swfContext:ISWFContext
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
La instancia de ISWFContext que se va a utilizar para las llamadas que deben hacerse en un determinado contexto SWF
Las implementaciones de IFlowComposer deben permitir que esta propiedad se pueda establecer para que los usuarios de la interfaz puedan crear líneas en un contexto SWF distinto del que contiene la implementación. También debe suministrarse una implementación predeterminada de ISWFContext.
Implementación
public function get swfContext():ISWFContext
public function set swfContext(value:ISWFContext):void
Elementos de API relacionados
addController | () | método |
public function addController(controller:ContainerController):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Añade un controlador a esta instancia de IFlowComposer.
Este contenedor se añade al final de la lista de contenedores.
Parámetros
controller:ContainerController — Objeto ContainerController que se va a añadir.
|
addControllerAt | () | método |
public function addControllerAt(controller:ContainerController, index:int):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Añade un controlador a esta instancia de IFlowComposer en el índice especificado.
La lista de controladores se basa en 0 (el índice del primer controlador es 0).
Parámetros
controller:ContainerController — Objeto ContainerController que se va a añadir.
| |
index:int — Índice numérico que especifica la posición de la lista de controladores en la que se deben insertar el objeto ContainerController.
|
compose | () | método |
public function compose():Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Calcula cuántas líneas se necesitan para visualizar el contenido en el elemento raíz del flujo y las posiciones que estas líneas ocupan en los contenedores de visualización del flujo.
Las implementaciones de este método no deben actualizar la visualización, sino guardar los resultados para que las llamadas sucesivas a compose()
o a updateAllControllers()
no impliquen más recomposición si el contenido del flujo no ha cambiado.
Si el contenido de algún contenedor ha cambiado, el método debe devolver true
.
Boolean — true, si no ha cambiado nada.
|
Elementos de API relacionados
composeToController | () | método |
public function composeToController(index:int):Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Compone el contenido desde el elemento raíz hasta el contenedor en el índice especificado (incluido).
Si cambia el contenido de cualquier contenedor hasta el del índice especificado (incluido), el método devuelve true
. Si index
es mayor que el número de controladores (o no se especifica), todos los contenedores se componen.
Parámetros
index:int (default = NaN ) — compone al menos hasta este contenedor en el objeto TextFlow. Si controllerIndex es mayor que el número de controladores, componga al final del último contenedor.
|
Boolean — true, si no ha cambiado nada.
|
Elementos de API relacionados
composeToPosition | () | método |
public function composeToPosition(absolutePosition:int):Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Compone el contenido del elemento raíz hasta la posición especificada.
Si cambia el contenido de cualquier contenedor que contiene el contenido hasta el de la posición especificada (incluido), el método devuelve true
. Si absolutePosition
es mayor que la longitud de TextFlow (o no se especifica), todo el flujo se compone.
Parámetros
absolutePosition:int (default = NaN ) — compone al menos hasta esta posición en el objeto TextFlow. De forma predeterminada o si absolutePosition ha sobrepasado con mucho el final de la composición del flujo.
|
Boolean — true, si no ha cambiado nada.
|
Elementos de API relacionados
damage | () | método |
public function damage(startPosition:int, damageLength:int, damageType:String):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Marca las líneas como dañadas y que necesitan recomposición.
Parámetros
startPosition:int — comienzo de rango para dañar
| |
damageLength:int — número de caracteres para dañar
| |
damageType:String — tipo de daño. Uno de flashx.textLayout.compose.FlowDamageType
|
Elementos de API relacionados
findControllerIndexAtPosition | () | método |
public function findControllerIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Devuelve el índice del controlador que contiene el contenido en la posición especificada.
Puede considerarse posición la división entre dos caracteres u otros elementos de un flujo de texto. El valor de absolutePosition
es una posición entre el último carácter de un contenedor y el primer carácter del siguiente. Seguidamente, se devuelve el contenedor precedente si el parámetro preferPrevious
está establecido como true
y se devuelve el último contenedor si el parámetro preferPrevious
está establecido como false
.
El método debe devolver -1 si el contenido en la posición especificada no se encuentra en ningún contenedor o está fuera del rango de posiciones del flujo de texto.
Parámetros
absolutePosition:int — La posición del contenido para el que se busca el índice del contenedor.
| |
preferPrevious:Boolean (default = false ) — Especifica qué índice de contenedor se debe devolver cuando la posición se encuentra entre el último elemento de un contenedor y el primer elemento del siguiente.
|
int — el índice del controlador del contenedor o -1 si no se encuentra.
|
findLineAtPosition | () | método |
public function findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Devuelve el objeto TextFlowLine que contiene el contenido en la posición especificada.
Puede considerarse posición la división entre dos caracteres u otros elementos de un flujo de texto. El valor de absolutePosition
es una posición entre el último elemento de una línea y el primer elemento de la siguiente. Seguidamente, se devuelve el contenedor precedente si el parámetro preferPrevious
está establecido como true
y se devuelve la última línea si el parámetro preferPrevious
está establecido como false
.
Parámetros
absolutePosition:int — La posición del contenido para el que quiere el objeto TextFlowLine.
| |
preferPrevious:Boolean (default = false ) — Especifica qué línea se debe devolver cuando la posición se encuentra entre el último elemento de una línea y el primer elemento de la siguiente.
|
flashx.textLayout.compose:TextFlowLine — objeto TextFlowLine con el contenido en la posición especificada, o null, si no se encuentra.
|
findLineIndexAtPosition | () | método |
public function findLineIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Devuelve el número de línea secuencial del objeto TextFlowLine que contiene el contenido en la posición especificada.
El número de la primera línea es 0 y el número de la última línea es igual al número de líneas menos uno. Si la posición especificada en absolutePosition
supera el final del flujo de texto, este método debe devolver el número que se asignará a la nueva línea añadida al flujo de texto (que es igual al número de líneas actuales).
Puede considerarse posición la división entre dos caracteres u otros elementos de un flujo de texto. El valor de absolutePosition
es una posición entre la última línea de un contenedor y la primera línea del siguiente. Seguidamente, se devuelve el contenedor precedente si el parámetro preferPrevious
está establecido como true
y se devuelve el último contenedor si el parámetro preferPrevious
está establecido como false
.
Parámetros
absolutePosition:int — La posición del contenido para el que quiere la línea de texto.
| |
preferPrevious:Boolean (default = false ) — Especifica qué índice de contenedor se debe devolver cuando la posición se encuentra entre la última línea de un contenedor y la primera línea del siguiente.
|
int — el índice de la línea de texto en la posición especificada. Si no se encuentra, lo trata como como fuera del final y devuelve el número de líneas.
|
getControllerAt | () | método |
public function getControllerAt(index:int):ContainerController
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Devuelve el objeto ContainerController en el índice especificado.
Parámetros
index:int — El índice del objeto ContainerController que se va a devolver.
|
ContainerController — el objeto ContainerController en la posición especificada.
|
getControllerIndex | () | método |
public function getControllerIndex(controller:ContainerController):int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Devuelve el índice de la instancia de ContainerController especificada.
Parámetros
controller:ContainerController — Una referencia al objeto ContainerController que se quiere encontrar.
|
int — el índice del objeto ContainerController especificado o -1 si el controlador no está conectado a esta composición de flujo.
|
getLineAt | () | método |
public function getLineAt(index:int):flashx.textLayout.compose:TextFlowLine
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Devuelve la línea con el número de línea especificado.
La lista de líneas se numera desde cero hasta el número de líneas menos uno. Si el valor de index
se encuentra fuera de los límites de la lista de líneas, esta función devuelve null
.
Parámetros
index:int — El número de línea del objeto TextFlowLine que se va a devolver.
|
flashx.textLayout.compose:TextFlowLine — el objeto TextFlowLine con el número de línea especificado, o null , si no se encuentra.
|
interactionManagerChanged | () | método |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Lo llama el objeto TextFlow cuando cambia el administrador de interacción.
Las implementaciones de IFlowComposer deben actualizar detectores de eventos y propiedades que hacen referencia al administrador de interacción.
Parámetros
newInteractionManager:ISelectionManager — La nueva instancia de ISelectionManager.
|
isDamaged | () | método |
public function isDamaged(absolutePosition:int):Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Indica si alguno de los objetos TextFlowLine entre el principio de la línea y la línea que contiene el contenido en la posición especificada están marcados como dañados.
Parámetros
absolutePosition:int — la última posición del área de interés
|
Boolean — true si alguno de los objetos TextFlowLine desde el inicio del flujo hasta la línea que contiene el contenido en absolutePosition aparece marcado como dañado.
|
removeAllControllers | () | método |
public function removeAllControllers():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Elimina todos los controladores de esta instancia de IFlowComposer.
removeController | () | método |
public function removeController(controller:ContainerController):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Elimina un controlador de esta instancia de IFlowComposer.
Parámetros
controller:ContainerController — La instancia de ContainerController que se va a eliminar.
|
removeControllerAt | () | método |
public function removeControllerAt(index:int):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Elimina el controlador en el índice especificado de esta instancia de IFlowComposer.
Parámetros
index:int — El índice del objeto ContainerController que se va a eliminar.
|
setFocus | () | método |
public function setFocus(absolutePosition:int, preferPrevious:Boolean = false):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Establece la selección del contenedor que contiene la ubicación especificada por el parámetro absolutePosition
.
La implementación es la responsable de definir qué significa establecer la selección. Por ejemplo, una implementación puede utilizar la propiedad focus
integrada del objeto Stage (siempre y cuando los contenedores sean objetos interactivos) o la implementación puede administrar la selección de cualquier otro modo.
Parámetros
absolutePosition:int — Especifica la posición del contenedor que recibirá la selección en el flujo de texto.
| |
preferPrevious:Boolean (default = false ) — Si es true y la posición se encuentra antes del primer carácter de un contenedor, establece la selección al final del contenedor anterior.
|
Elementos de API relacionados
setRootElement | () | método |
public function setRootElement(newRootElement:ContainerFormattedElement):void
Parámetros
newRootElement:ContainerFormattedElement |
updateAllControllers | () | método |
public function updateAllControllers():Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Compone el contenido del elemento raíz y actualiza la visualización.
El diseño del texto suele llevarse a cabo en dos fases: composición y visualización. En la fase de composición, la composición de flujo calcula el número de líneas necesarias para visualizar el contenido, así como la posición de estas líneas en los contenedores de visualización del flujo. En la fase de visualización, la composición de flujo actualiza los elementos secundarios de objetos de visualización de sus contenedores. Se espera que el método updateAllControllers()
se encargue de ambas fases. Una implementación eficaz realizará un seguimiento de los cambios del contenido para que se lleve a cabo un ciclo completo de composición y visualización sólo cuando sea necesario.
Este método actualiza todas las líneas y la lista de visualización inmediatamente y de forma síncrona.
Si el contenido de algún contenedor ha cambiado, el método debe devolver true
.
Boolean — true, si no ha cambiado nada.
|
updateLengths | () | método |
public function updateLengths(startPosition:int, deltaLength:int):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Actualiza las longitudes de las líneas para conservar la asignación con el objeto TextFlow.
Parámetros
startPosition:int — inicio del cambio de longitud
| |
deltaLength:int — cambio en el número de caracteres.
|
updateToController | () | método |
public function updateToController(index:int):Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Compone y actualiza la visualización hasta el contenedor en el índice especificado (incluido).
Se espera que el método updateToController()
componga el contenido y actualice la visualización para que todos los contenedores hasta el contenedor del índice especificado (incluido) estén al día. Por ejemplo, si tiene una cadena de veinte contenedores y especifica el índice 10, updateToController()
garantiza la composición y la visualización desde el primero hasta el décimo contenedor (índices 9). La composición puede finalizar en dicho punto. Si controllerIndex
es -1 (o si no se especifica), se actualizan todos los contenedores.
Este método actualiza todas las líneas y la lista de visualización inmediatamente y de forma síncrona.
Si el contenido de algún contenedor ha cambiado, el método debe devolver true
.
Parámetros
index:int (default = NaN ) — índice del último contenedor que se va a actualizar; de forma predeterminada se actualizan todos los contenedores
|
Boolean — true, si no ha cambiado nada.
|
Tue Jun 12 2018, 02:12 PM Z