Pacote | flashx.textLayout.compose |
Classe | public class StandardFlowComposer |
Herança | StandardFlowComposer FlowComposerBase Object |
Implementações | IFlowComposer |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Cada chamada a compose()
ou updateAllControllers()
normaliza o fluxo de texto na primeira etapa. O processo de normalização verifica as partes do objeto TextFlow que foram modificadas e realiza as seguintes etapas:
- Exclui os objetos FlowLeafElement e SubParagraphGroupElement vazios.
- Combina extensões irmãs que tenham atributos idênticos.
- Acrescenta um parágrafo vazio se um fluxo estiver vazio.
Para usar um StandardFlowComposer, atribua-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
Propriedade | Definido por | ||
---|---|---|---|
composing : Boolean [somente leitura]
true se o compositor de fluxo estiver realizando uma operação de composição no momento. | StandardFlowComposer | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
damageAbsoluteStart : int [somente leitura]
A posição absoluta imediatamente anterior ao primeiro elemento do fluxo de texto que exige composição e atualização. | FlowComposerBase | ||
numControllers : int [somente leitura]
O número de contêineres atribuídos a esta instância do IFlowComposer. | StandardFlowComposer | ||
numLines : int [somente leitura]
O número total de linhas compostas no fluxo. | FlowComposerBase | ||
rootElement : ContainerFormattedElement [somente leitura]
O elemento raiz associado a esta instância do IFlowComposer. | StandardFlowComposer | ||
swfContext : ISWFContext
A instância ISWFContext usada para fazer chamadas FTE conforme necessário. | FlowComposerBase | ||
textFlow : flashx.textLayout.elements:TextFlow [somente leitura]
O objeto TextFlow ao qual este compositor de fluxo está anexado. | FlowComposerBase |
Método | Definido por | ||
---|---|---|---|
Cria um objeto StandardFlowComposer. | StandardFlowComposer | ||
Adiciona um controlador a esta instância do IFlowComposer. | StandardFlowComposer | ||
Adiciona um controlador a esta instância do IFlowComposer no índice especificado. | StandardFlowComposer | ||
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. | StandardFlowComposer | ||
Compõe o conteúdo do elemento raiz até (e inclusive) o contêiner no índice especificado. | StandardFlowComposer | ||
Compõe o conteúdo do elemento raiz até a posição especificada. | StandardFlowComposer | ||
Marque linhas como danificadas e precisando de recomposição. | FlowComposerBase | ||
Gera o índice do controlador que contém o conteúdo na posição especificada. | StandardFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Gera o objeto TextFlowLine que contém o conteúdo na posição especificada. | FlowComposerBase | ||
Gera o número sequencial de linha do objeto TextFlowLine que contém o conteúdo na posição especificada. | FlowComposerBase | ||
Gera a posição absoluta do primeiro elemento de conteúdo no objeto ContainerController especificado. | StandardFlowComposer | ||
Gera o objeto ContainerController no índice especificado. | StandardFlowComposer | ||
Gera o índice do objeto ContainerController especificado. | StandardFlowComposer | ||
Gera a linha com o número especificado. | FlowComposerBase | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Chamado pelo TextFlow quando o gerenciador de interações muda. | StandardFlowComposer | ||
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’. | FlowComposerBase | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Retira todos os controladores desta instância do IFlowComposer. | StandardFlowComposer | ||
Retira um controlador desta instância do IFlowComposer. | StandardFlowComposer | ||
Retira desta instância do IflowComposer o controlador no índice especificado. | StandardFlowComposer | ||
Coloca o foco no contêiner que contém o local especificado pelo parâmetro absolutePosition. | StandardFlowComposer | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
StandardFlowComposer | |||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Compõe o conteúdo do elemento raiz e atualiza a exibição. | StandardFlowComposer | ||
Atualize os comprimentos das linhas para manter a correlação com o TextFlow. | FlowComposerBase | ||
Compõe e atualiza a exibição até (e inclusive) o contêiner no índice especificado. | StandardFlowComposer | ||
Retorna o valor primitivo do objeto especificado. | Object |
Método | Definido por | ||
---|---|---|---|
Gera o valor ‘true’ se a composição for necessária; caso contrário, gera ‘false’ | StandardFlowComposer |
composing | propriedade |
numControllers | propriedade |
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
StandardFlowComposer | () | Construtor |
public function StandardFlowComposer()
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Cria um objeto StandardFlowComposer.
Para usar um objeto StandardFlowComposer, atribua-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.
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.compose.StandardFlowComposer; public class StandardFlowComposer_constructor { public function createComposer(textFlow:TextFlow):void { textFlow.flowComposer = new StandardFlowComposer(); } } }
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.
|
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_addController { import flash.display.Sprite; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public function setupController(textFlow:TextFlow):void { var container:Sprite = new Sprite(); var controller:ContainerController = new ContainerController( container, 400, 200 ); textFlow.flowComposer.addController( controller ); } } }
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.
|
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_addControllerAt { import flash.display.Sprite; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public function setupController(textFlow:TextFlow):void { var container:Sprite = new Sprite(); var controller:ContainerController = new ContainerController( container, 400, 200 ); textFlow.flowComposer.addControllerAt( controller, 0 ); } } }
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.
O método compose()
compõe os conteúdos apenas se sofreu alterações desde a última operação de composição. Os resultados são salvos para que as chamadas subsequentes a compose()
ou updateAllControllers()
não realizem mais recomposições caso o conteúdo do fluxo não tenha sido alterado.
Se o conteúdo de algum contêiner tiver sofrido alterações, o método gerará o valor true
.
Boolean — 'true' se houve alguma mudança.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_compose { import flashx.textLayout.elements.TextFlow; public function compose(textFlow:TextFlow):void { textFlow.flowComposer.compose(); } } }
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.
|
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_composeToController { import flashx.textLayout.elements.TextFlow; public function compose(textFlow:TextFlow):void { textFlow.flowComposer.composeToController( 3 ); } } }
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.
|
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_composeToPosition { import flashx.textLayout.elements.TextFlow; public function compose(textFlow:TextFlow):void { textFlow.flowComposer.composeToPosition( 344 ); } } }
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 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.
|
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.compose.StandardFlowComposer; public class StandardFlowComposer_findControllerIndexAtPosition { public function findControllerIndexAtPosition(textFlow:TextFlow):void { var index:int = textFlow.flowComposer.findControllerIndexAtPosition( 344 ); } } }
getAbsoluteStart | () | método |
public function getAbsoluteStart(controller:ContainerController):int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Gera a posição absoluta do primeiro elemento de conteúdo no objeto ContainerController especificado.
Uma posição é calculada pela contagem da divisão entre dois caracteres ou outros elementos de um fluxo de texto. A posição anterior ao primeiro elemento de um fluxo é zero. Uma posição absoluta é a posição contada a partir do início do fluxo.
Parâmetros
controller:ContainerController — Um objeto ContainerController associado a este compositor de fluxo.
|
int — a posição antes do primeiro caractere ou gráfico no ContainerController.
|
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.
|
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public class StandardFlowComposer_getControllerAt { public function findControllerIndexAtPosition(textFlow:TextFlow):void { var controller:ContainerController = textFlow.flowComposer.getControllerAt( 0 ); } } }
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.
|
Exemplo ( Como usar este exemplo )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public class StandardFlowComposer_getControllerIndex { public function getControllerIndex(textFlow:TextFlow, controller:ContainerController):void { var index:int = textFlow.flowComposer.getControllerIndex( controller ); } } }
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.
Esta função é chamada automaticamente. Normalmente, o seu código não precisa chamar este método. As classes que estendem o StandardFlowComposer podem anular este método para atualizar os ouvintes de eventos e outras propriedades que dependem do gerenciador de interações.
Parâmetros
newInteractionManager:ISelectionManager — Nova instância do ISelectionManager.
|
preCompose | () | método |
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, leanLeft: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
.
O StandardFlowComposer chama o método setFocus()
do objeto ContainerController que contém a posição de fluxo de texto especificada.
Parâmetros
absolutePosition:int — Especifica a posição no fluxo de texto do contêiner que receberá o foco.
| |
leanLeft:Boolean (default = false ) — Se for ‘true’ e se a posição for 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
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
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.
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()
inicia ambas as fases na sequência. O StandardFlowComposer acompanha as alterações de conteúdo para que um ciclo completo de composição e exibição seja realizado apenas quando for 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 gerará o valor true
.
Boolean — 'true' se houve alguma mudança.
|
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()
compõe o conteúdo e atualiza a exibição de todos os contêineres até (e inclusive) o contêiner no índice especificado. Por exemplo, se você tiver um conjunto de 20 contêineres e especificar um índice de 10, updateToController()
garantirá a composição e a exibição do primeiro ao décimo contêiner (índices de 0 a 9). A composição para neste ponto. Se controllerIndex
for -1 (ou se não for especificado), todos os contêineres serão 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 gerará o valor true
.
Parâmetros
index:int (default = NaN ) — índice do último contêiner a ser atualizado (por padrão, atualiza todos os contêineres)
|
Boolean — 'true' se houve alguma mudança.
|
importToFlow()
.
package flashx.textLayout.compose.examples { import flash.display.Sprite; import flashx.textLayout.compose.StandardFlowComposer; import flashx.textLayout.container.ContainerController; import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.elements.TextFlow; public class StandardFlowComposer_ClassExample extends Sprite { private var poem:String = "Sonnet 18\n" + "Shall I compare thee to a summer's day?\n" + "Thou art more lovely and more temperate:\n" + "Rough winds do shake the darling buds of May,\n" + "And summer's lease hath all too short a date:\n" + "Sometime too hot the eye of heaven shines,\n" + "And often is his gold complexion dimmed,\n" + "And every fair from fair sometime declines,\n" + "By chance, or nature's changing course untrimmed:\n" + "But thy eternal summer shall not fade,\n" + "Nor lose possession of that fair thou ow'st,\n" + "Nor shall death brag thou wand'rest in his shade,\n" + "When in eternal lines to time thou grow'st,\n" + "So long as men can breathe or eyes can see,\n" + "So long lives this, and this gives life to thee.\n" + "William Shakespeare\n"; private var flow:TextFlow; public function StandardFlowComposer_ClassExample() { var firstContainer:Sprite = new Sprite(); firstContainer.x = 180; firstContainer.y = 30; this.stage.addChild( firstContainer ); var secondContainer:Sprite = new Sprite(); secondContainer.x = 30; secondContainer.y = 130 this.stage.addChild( secondContainer ); var firstController:ContainerController = new ContainerController( firstContainer, 300, 100 ); var secondController:ContainerController = new ContainerController( secondContainer, 800, 600 ); flow = TextConverter.importToFlow( poem, TextConverter.PLAIN_TEXT_FORMAT ); flow.flowComposer = new StandardFlowComposer();; flow.flowComposer.addController( firstController ); flow.flowComposer.addController( secondController ); flow.flowComposer.updateAllControllers(); } } }
Wed Jun 13 2018, 11:10 AM Z