Pacote | flashx.textLayout.compose |
Interface | public interface IFlowComposer |
Implementadores | StandardFlowComposer |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Fluxos de texto exibidos com uma implementação do compositor de fluxo podem ser dinâmicos e interativos. Um compositor de fluxo gerencia um ou mais controladores de exibição. Cada controlador é associado a um contêiner de objeto de exibição (como um Sprite) através do qual as linhas criadas para o fluxo de texto são finalmente exibidas. O diagrama a seguir ilustra o relacionamento entre os objetos TextFlow, IFlowComposer, ContainerController e DisplayObjectContainer:
Um compositor de fluxo calcula que parte de um fluxo de texto cabe em cada contêiner e adiciona as respectivas linhas de texto no objeto de exibição do contêiner. A interface IFlowComposer define métodos separados para cálculos de layout e para atualização da exibição. O IFlowComposer também define métodos para compor e atualizar gradualmente um fluxo de texto. Estes métodos podem ser usados para evitar o bloqueio da interface de usuário ao atualizar fluxos de texto longos.
Além de gerenciar a composição e a exibição do texto, um compositor de fluxo controla qual contêiner receberá o foco, gerencia a exibição do destaque da seleção (que pode atravessar os limites do contêiner), e dá acesso direto a todos os objetos TextLine do fluxo.
Para usar uma implementação do IFlowComposer, atribua uma instância dessa implementação à propriedade flowComposer
de um objeto TextFlow. Chame o método updateAllControllers()
para dispor e exibir o texto nos contêineres anexados ao compositor de fluxo.
Nota: para fluxos de texto estáticos simples, também é possível usar uma das classes de fábrica de linhas de texto. Essas classes de fábrica normalmente criam linhas com menos overhead do que um compositor de fluxo, mas não permite edição, mudanças dinâmicas ou interação com o usuário.
Elementos da API relacionados
FlowComposerBase
StandardFlowComposer
TextFlow
StringTextLineFactory
TextFlowTextLineFactory
Propriedade | Definido por | ||
---|---|---|---|
composing : Boolean [somente leitura]
true se o compositor de fluxo estiver realizando uma operação de composição no momento. | IFlowComposer | ||
damageAbsoluteStart : int [somente leitura]
A primeira posição inválida no elemento raiz, como posição absoluta a partir do início do fluxo. | IFlowComposer | ||
numControllers : int [somente leitura]
O número de contêineres atribuídos a esta instância do IFlowComposer. | IFlowComposer | ||
numLines : int [somente leitura]
O número total de linhas compostas no fluxo. | IFlowComposer | ||
rootElement : ContainerFormattedElement [somente leitura]
O elemento raiz associado a esta instância do IFlowComposer. | IFlowComposer | ||
swfContext : ISWFContext
A instância ISWFContext a ser usada para chamadas que devem ser feitas em Implementações de contexto SWF específicas de IFlowComposer deve permitir que esta propriedade seja estabelecida para que os usuários da interface possam criar linhas em um contexto SWF diferente daquele que contém a implementação. | IFlowComposer |
Método | Definido por | ||
---|---|---|---|
Adiciona um controlador a esta instância do IFlowComposer. | IFlowComposer | ||
Adiciona um controlador a esta instância do IFlowComposer no índice especificado. | IFlowComposer | ||
Calcula quantas linhas são necessárias para exibir o conteúdo no elemento raiz do fluxo e as posições dessas linhas nos contêineres de exibição do fluxo. | IFlowComposer | ||
Compõe o conteúdo do elemento raiz até (e inclusive) o contêiner no índice especificado. | IFlowComposer | ||
Compõe o conteúdo do elemento raiz até a posição especificada. | IFlowComposer | ||
Marque linhas como danificadas e precisando de recomposição. | IFlowComposer | ||
Gera o índice do controlador que contém o conteúdo na posição especificada. | IFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Gera o objeto TextFlowLine que contém o conteúdo na posição especificada. | IFlowComposer | ||
Gera o número sequencial de linha do objeto TextFlowLine que contém o conteúdo na posição especificada. | IFlowComposer | ||
Gera o objeto ContainerController no índice especificado. | IFlowComposer | ||
Gera o índice do objeto ContainerController especificado. | IFlowComposer | ||
Gera a linha com o número especificado. | IFlowComposer | ||
Chamado pelo TextFlow quando o gerenciador de interações muda. | IFlowComposer | ||
Indica se algum objeto TextFlowLine entre o início do fluxo e a linha que contém o conteúdo na posição especificada está marcado como ‘danificado’. | IFlowComposer | ||
Retira todos os controladores desta instância do IFlowComposer. | IFlowComposer | ||
Retira um controlador desta instância do IFlowComposer. | IFlowComposer | ||
Retira desta instância do IflowComposer o controlador no índice especificado. | IFlowComposer | ||
Coloca o foco no contêiner que contém o local especificado pelo parâmetro absolutePosition. | IFlowComposer | ||
IFlowComposer | |||
Compõe o conteúdo do elemento raiz e atualiza a exibição. | IFlowComposer | ||
Atualize os comprimentos das linhas para manter a correlação com o TextFlow. | IFlowComposer | ||
Compõe e atualiza a exibição até (e inclusive) o contêiner no índice especificado. | IFlowComposer |
composing | propriedade |
damageAbsoluteStart | propriedade |
numControllers | propriedade |
numLines | propriedade |
numLines:int
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O número total de linhas compostas no fluxo. Por padrão TLF não compõe o fluxo todo e este valor pode ser impreciso. Use composeToPosition para obter todas as linhas compostas.
Implementação
public function get numLines():int
rootElement | propriedade |
rootElement:ContainerFormattedElement
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O elemento raiz associado a esta instância do IFlowComposer.
Apenas um objeto TextFlow pode ser um elemento raiz.
Implementação
public function get rootElement():ContainerFormattedElement
Elementos da API relacionados
swfContext | propriedade |
swfContext:ISWFContext
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
A instância ISWFContext a ser usada para chamadas que devem ser feitas em um contexto SWF específico
As implementações de IFlowComposer devem permitir que essa propriedade seja definida de forma que os usuários da interface possam criar linhas em um contexto do SWF diferente do contexto que contém a implementação. Também deve ser fornecida uma implementação padrão de ISWFContext.
Implementação
public function get swfContext():ISWFContext
public function set swfContext(value:ISWFContext):void
Elementos da API relacionados
addController | () | método |
public function addController(controller:ContainerController):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Adiciona um controlador a esta instância do IFlowComposer.
O contêiner é incluído no final da lista de contêineres.
Parâmetros
controller:ContainerController — O objeto ContainerController a ser adicionado.
|
addControllerAt | () | método |
public function addControllerAt(controller:ContainerController, index:int):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Adiciona um controlador a esta instância do IFlowComposer no índice especificado.
A lista de controladores é baseada em 0 (o índice do primeiro controlador é 0).
Parâmetros
controller:ContainerController — O objeto ContainerController a ser adicionado.
| |
index:int — Um índice numérico que especifica a posição na lista de controladores na qual o objeto ContainerController deve ser inserido.
|
compose | () | método |
public function compose():Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Calcula quantas linhas são necessárias para exibir o conteúdo no elemento raiz do fluxo e as posições dessas linhas nos contêineres de exibição do fluxo.
As implementações deste método não devem atualizar a exibição, mas devem salvar os resultados para que as chamadas subsequentes a compose()
ou updateAllControllers()
não realizem mais uma recomposição caso o conteúdo do fluxo não tenha mudado.
Se o conteúdo de algum contêiner tiver sofrido alterações, o método deverá gerar o valor true
.
Boolean — 'true' se houve alguma mudança.
|
Elementos da API relacionados
composeToController | () | método |
public function composeToController(index:int):Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Compõe o conteúdo do elemento raiz até (e inclusive) o contêiner no índice especificado.
Se o conteúdo de qualquer contêiner até (e inclusive) o contêiner no índice especificado sofrer alterações, o método gerará o valor true
. Se index
for maior do que o número de controladores (ou não especificado), então todos os contêineres serão compostos.
Parâmetros
index:int (default = NaN ) — compor pelo menos até este contêiner no TextFlow. Se controllerIndex for maior do que o número de controladores, corrija para o fim do último container.
|
Boolean — 'true' se houve alguma mudança.
|
Elementos da API relacionados
composeToPosition | () | método |
public function composeToPosition(absolutePosition:int):Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Compõe o conteúdo do elemento raiz até a posição especificada.
Se o conteúdo de qualquer contêiner até (e inclusive) o contêiner que mantém o conteúdo na posição especificada sofrer alterações, o método gerará o valor true
. Se absolutePosition
for maior do que o comprimento do TextFlow (ou não especificado), então o fluxo inteiro será composto.
Parâmetros
absolutePosition:int (default = NaN ) — compor pelo menos até esta posição no TextFlow. Por padrão ou se absolutePosition ultrapassou o fim do fluxo, corrija para o fim do fluxo.
|
Boolean — 'true' se houve alguma mudança.
|
Elementos da API relacionados
damage | () | método |
public function damage(startPosition:int, damageLength:int, damageType:String):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Marque linhas como danificadas e precisando de recomposição.
Parâmetros
startPosition:int — início do intervalo a danificar
| |
damageLength:int — número de caracteres a danificar
| |
damageType:String — tipo de dano. Um de flashx.textLayout.compose.FlowDamageType
|
Elementos da API relacionados
findControllerIndexAtPosition | () | método |
public function findControllerIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Gera o índice do controlador que contém o conteúdo na posição especificada.
Uma posição pode ser considerada a divisão entre dois caracteres ou outros elementos de um fluxo de texto. Caso o valor em absolutePosition
seja uma posição entre o último caractere de um contêiner e o primeiro caractere do contêiner seguinte, haverá o retorno do contêiner anterior se o parâmetro preferPrevious
receber o valor 'true’
, e haverá o retorno do contêiner posterior se o parâmetro preferPrevious
receber o valor ‘false’
.
O método deverá gerar o valor -1 se o conteúdo na posição especificada não estiver em nenhum contêiner ou se estiver fora do intervalo de posições no fluxo de texto.
Parâmetros
absolutePosition:int — A posição do conteúdo cujo índice do contêiner é procurado.
| |
preferPrevious:Boolean (default = false ) — Especifica qual índice do contêiner deverá ser gerado quando a posição estiver entre o último elemento de um contêiner e o primeiro elemento do contêiner seguinte.
|
int — o índice do controlador do contêiner, ou -1 caso não seja encontrado.
|
findLineAtPosition | () | método |
public function findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Gera o objeto TextFlowLine que contém o conteúdo na posição especificada.
Uma posição pode ser considerada a divisão entre dois caracteres ou outros elementos de um fluxo de texto. Se o valor em absolutePosition
for uma posição entre o último elemento de uma linha e o primeiro elemento da linha seguinte, a linha anterior será retornada se o parâmetro preferPrevious
receber o valor 'true’
, e a linha posterior será retornada se o parâmetro preferPrevious
receber o valor ‘false’
.
Parâmetros
absolutePosition:int — A posição do conteúdo para o qual você deseja o objeto TextFlowLine.
| |
preferPrevious:Boolean (default = false ) — Especifica qual linha deverá ser gerada quando a posição estiver entre o último elemento de uma linha e o primeiro elemento da linha seguinte.
|
flashx.textLayout.compose:TextFlowLine — a TextFlowLine que contém o conteúdo na posição especificada, ou ‘nulo’ se não for encontrada.
|
findLineIndexAtPosition | () | método |
public function findLineIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Gera o número sequencial de linha do objeto TextFlowLine que contém o conteúdo na posição especificada.
O número da primeira linha é 0 e o número da última linha é igual ao número de linhas menos um. Se a posição especificada em absolutePosition
for posterior ao final do fluxo do texto, esse método deverá gerar o número que será atribuído à próxima nova linha adicionada ao fluxo de texto (que é igual ao número de linhas atuais).
Uma posição pode ser considerada a divisão entre dois caracteres ou outros elementos de um fluxo de texto. Se o valor em absolutePosition
for uma posição entre a última linha de um contêiner e a primeira linha do contêiner seguinte, o contêiner anterior será retornado se o parâmetro preferPrevious
receber o valor 'true’
, e o contêiner posterior será retornado se o parâmetro preferPrevious
receber o valor ‘false’
.
Parâmetros
absolutePosition:int — A posição do conteúdo para o qual você deseja a linha de texto.
| |
preferPrevious:Boolean (default = false ) — Especifica qual índice do contêiner deverá ser gerado quando a posição estiver entre a última linha de um contêiner e a primeira linha do contêiner seguinte.
|
int — O índice da linha de texto na posição especificada. Se não for encontrado, trata como posterior ao final e gera o número de linhas.
|
getControllerAt | () | método |
public function getControllerAt(index:int):ContainerController
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Gera o objeto ContainerController no índice especificado.
Parâmetros
index:int — O índice do objeto ContainerController a ser gerado.
|
ContainerController — o objeto ContainerController na posição especificada.
|
getControllerIndex | () | método |
public function getControllerIndex(controller:ContainerController):int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Gera o índice do objeto ContainerController especificado.
Parâmetros
controller:ContainerController — Uma referência ao objeto ContainerController a ser encontrado.
|
int — o índice do objeto ContainerController especificado ou -1 se o controlador não estiver conectado a este compositor de fluxo.
|
getLineAt | () | método |
public function getLineAt(index:int):flashx.textLayout.compose:TextFlowLine
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Gera a linha com o número especificado.
A lista de linhas é numerada de zero até número de linhas menos um. Se o valor em index
estiver fora dos limites da lista de linhas, esta função gerará o valor null
.
Parâmetros
index:int — O número de linha do objeto TextFlowLine a ser gerado.
|
flashx.textLayout.compose:TextFlowLine — a TextFlowLine com o número de linha especificado, ou null , se não for encontrada.
|
interactionManagerChanged | () | método |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Chamado pelo TextFlow quando o gerenciador de interações muda.
As implementações do IFlowComposer devem atualizar os ouvintes de eventos e as propriedades que fazem referência ao gerenciador de interações.
Parâmetros
newInteractionManager:ISelectionManager — Nova instância do ISelectionManager.
|
isDamaged | () | método |
public function isDamaged(absolutePosition:int):Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Indica se algum objeto TextFlowLine entre o início do fluxo e a linha que contém o conteúdo na posição especificada está marcado como ‘danificado’.
Parâmetros
absolutePosition:int — a última posição na área de interesse
|
Boolean — ‘true’ se algum dos objetos TextFlowLine do início do fluxo até a linha que possui o conteúdo em absolutePosition estiver marcado como ‘danificado’.
|
removeAllControllers | () | método |
public function removeAllControllers():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Retira todos os controladores desta instância do IFlowComposer.
removeController | () | método |
public function removeController(controller:ContainerController):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Retira um controlador desta instância do IFlowComposer.
Parâmetros
controller:ContainerController — A instância de ContainerController a ser removida.
|
removeControllerAt | () | método |
setFocus | () | método |
public function setFocus(absolutePosition:int, preferPrevious:Boolean = false):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Coloca o foco no contêiner que contém o local especificado pelo parâmetro absolutePosition
.
A implementação é responsável por definir o que significa a colocação do foco. Por exemplo, uma implementação pode usar a propriedade focus
interna do objeto Stage (desde que os contêineres sejam InteractiveObjects) ou a implementação pode gerenciar o foco de alguma outra maneira.
Parâmetros
absolutePosition:int — Especifica a posição no fluxo de texto do contêiner que receberá o foco.
| |
preferPrevious:Boolean (default = false ) — Se for ‘true’ e se a posição for a posição anterior ao primeiro caractere de um contêiner, coloca o foco no final do contêiner anterior.
|
Elementos da API relacionados
setRootElement | () | método |
public function setRootElement(newRootElement:ContainerFormattedElement):void
Parâmetros
newRootElement:ContainerFormattedElement |
updateAllControllers | () | método |
public function updateAllControllers():Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Compõe o conteúdo do elemento raiz e atualiza a exibição.
Normalmente, a disposição do texto é realizada em duas fases: composição e exibição. Na fase de composição, o compositor de fluxo calcula quantas linhas são necessárias para exibir o conteúdo e a posição dessas linhas nos contêineres de exibição do fluxo. Na fase de exibição, o compositor de fluxo atualiza os filhos do objeto de exibição dos seus contêineres. O método updateAllControllers()
deve realizar ambas as fases. Uma implementação eficiente acompanhará as alterações de conteúdo para que um ciclo completo de composição e exibição seja realizado apenas quando necessário.
Este método atualiza imediatamente e de maneira sincronizada todas as linhas de texto e a lista de exibição.
Se o conteúdo de algum contêiner sofrer alterações, o método deverá gerar o valor true
.
Boolean — 'true' se houve alguma mudança.
|
updateLengths | () | método |
public function updateLengths(startPosition:int, deltaLength:int):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Atualize os comprimentos das linhas para manter a correlação com o TextFlow.
Parâmetros
startPosition:int — início da alteração de comprimento
| |
deltaLength:int — alteração no número de caracteres.
|
updateToController | () | método |
public function updateToController(index:int):Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Compõe e atualiza a exibição até (e inclusive) o contêiner no índice especificado.
O método updateToController()
deve compor o conteúdo e atualizar a exibição para que todos os contêineres até (e inclusive) o contÊiner no índice especificado estejam atualizados. Por exemplo, se você tiver um conjunto de vinte contêineres e especificar um índice de 10, updateToController()
deverá garantir a composição e a exibição do primeiro até o décimo contêiner (índices de 0 a 9). A composição pode ser interrompida nesse ponto. Se controllerIndex
for -1 (ou se não for especificado), todos os contêineres deverão ser atualizados.
Este método atualiza imediatamente e de maneira sincronizada todas as linhas de texto e a lista de exibição.
Se o conteúdo de algum contêiner sofrer alterações, o método deverá gerar o valor true
.
Parâmetros
index:int (default = NaN ) — índice do último contêiner a ser atualizado (por padrão, atualizará todos os contêineres)
|
Boolean — 'true' se houve alguma mudança.
|
Wed Jun 13 2018, 11:10 AM Z