Pacchetto | flashx.textLayout.compose |
Interfaccia | public interface IFlowComposer |
Implementatori | StandardFlowComposer |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
I flussi di testo visualizzati con l'implementazione della composizione del flusso possono essere dinamici e interattivi. Una composizione del flusso gestisce uno o più controller di visualizzazione. Ogni controller è associato a un contenitore oggetto di visualizzazione (ad esempio uno Sprite) tramite il quale le righe create per il flusso di testo vengono visualizzate. Il diagramma seguente illustra la relazione tra oggetti TextFlow, IFlowComposer, ContainerController e DisplayObjectContainer:
Una composizione di flusso calcola la porzione di un flusso di testo inseribile in ogni contenitore e aggiunge le relative righe di testo all'oggetto di visualizzazione del contenitore. L'interfaccia IFlowComposer definisce metodi distinti per i calcoli del layout e per l'aggiornamento della visualizzazione. IFlowComposer definisce inoltre metodi per la composizione e l'aggiornamento incrementali di un flusso di testo. Questi metodi possono essere utilizzati per evitare di bloccare l'interfaccia utente in caso di aggiornamento di flussi di testo lunghi.
Oltre alla gestione della composizione del testo e della visualizzazione, una composizione di flusso controlla quale contenitore ha l'attivazione, gestisce la visualizzazione dell'evidenziazione della selezione (che può essere relativa a più contenitori) e garantisce accesso diretto a tutti gli oggetti TextLine del flusso.
Per utilizzare un'implementazione IFlowComposer, assegnate un'istanza dell'implementazione alla proprietà flowComposer
di un oggetto TextFlow. Chiamate il metodo updateAllControllers()
per disporre e visualizzare il testo nei contenitori collegati alla composizione di flusso.
Nota: per flussi di testo statici semplici potete anche utilizzare una classe factory per righe di testo. Queste classi factory in genere creano righe con meno sovraccarico rispetto a una composizione di flusso, ma non supportano la modifica, le modifiche dinamiche o l'interazione con l'utente.
Elementi API correlati
FlowComposerBase
StandardFlowComposer
TextFlow
StringTextLineFactory
TextFlowTextLineFactory
Proprietà | Definito da | ||
---|---|---|---|
composing : Boolean [sola lettura]
True se la composizione del flusso sa eseguendo un'operazione di composizione. | IFlowComposer | ||
damageAbsoluteStart : int [sola lettura]
La prima posizione non valida nell'elemento principale, come posizione assoluta dall'inizio del flusso. | IFlowComposer | ||
numControllers : int [sola lettura]
Il numero di contenitori assegnati a questa istanza di IFlowComposer. | IFlowComposer | ||
numLines : int [sola lettura]
Il numero totale di righe composte nel flusso. | IFlowComposer | ||
rootElement : ContainerFormattedElement [sola lettura]
L'elemento principale associato a questa istanza di IFlowComposer. | IFlowComposer | ||
swfContext : ISWFContext
L'istanza ISWFContext da utilizzare per le chiamate che devono essere effettuate in un contesto SWF specifico. Le implementazioni di IFlowComposer dovrebbero consentire l'impostazione di questa proprietà affinché gli utenti dell'interfaccia possano creare righe in un contesto SWF diverso rispetto a quello che contiene l'implementazione. | IFlowComposer |
Metodo | Definito da | ||
---|---|---|---|
Aggiunge un controller a questa istanza di IFlowComposer. | IFlowComposer | ||
Aggiunge un controller a questa istanza di IFlowComposer in corrispondenza dell'indice specificato. | IFlowComposer | ||
Calcola quante righe sono necessarie per visualizzare il contenuto nell'elemento principale del flusso e le posizioni di queste righe nei contenitori di visualizzazione del flusso. | IFlowComposer | ||
Compone il contenuto dell'elemento radice fino al contenitore (incluso) all'indice specificato. | IFlowComposer | ||
Compone il contenuto dell'elemento radice fino alla posizione specificata. | IFlowComposer | ||
Contrassegna le righe come danneggiate e indica la necessità di una ricomposizione. | IFlowComposer | ||
Restituisce l'indice del controller che include il contenuto nella posizione specificata. | IFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Restituisce l'oggetto TextFlowLine che include il contenuto nella posizione specificata. | IFlowComposer | ||
Restituisce il numero di riga sequenziale dell'oggetto TextFlowLine che include il contenuto alla posizione specificata. | IFlowComposer | ||
Restituisce l'oggetto ContainerController all'indice specificato. | IFlowComposer | ||
Restituisce l'indice dell'oggetto ContainerController specificato. | IFlowComposer | ||
Restituisce la riga con il numero di riga specificato. | IFlowComposer | ||
Chiamato dall'oggetto TextFlow quando il gestore dell'interazione cambia. | IFlowComposer | ||
Indica se uno o più degli oggetti TextFlowLine tra l'inizio del flusso e la riga che include il contenuto nella posizione specificata sono contrassegnati come danneggiati. | IFlowComposer | ||
Rimuove tutti i controller da questa istanza di IFlowComposer. | IFlowComposer | ||
Rimuove un controller da questa istanza di IFlowComposer. | IFlowComposer | ||
Rimuove il controller all'indice specificato da questa istanza di IFlowComposer. | IFlowComposer | ||
Imposta l'attivazione sul contenitore che contiene la posizione specificata dal parametro absolutePosition. | IFlowComposer | ||
IFlowComposer | |||
Compone il contenuto dell'elemento principale e aggiorna la visualizzazione. | IFlowComposer | ||
Aggiorna la lunghezza delle righe per gestire la mappatura nell'oggetto TextFlow. | IFlowComposer | ||
Compone e aggiorna la visualizzazione fino al contenitore (incluso) all'indice specificato. | IFlowComposer |
composing | proprietà |
damageAbsoluteStart | proprietà |
numControllers | proprietà |
numLines | proprietà |
numLines:int
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Il numero totale di righe composte nel flusso. Per impostazione predefinita il TLF non compone l'intero flusso e questo valore potrebbe non essere accurato. Utilizzate composeToPosition per comporre tutte le righe.
Implementazione
public function get numLines():int
rootElement | proprietà |
rootElement:ContainerFormattedElement
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
L'elemento principale associato a questa istanza di IFlowComposer.
Solo un oggetto TextFlow può essere un elemento principale.
Implementazione
public function get rootElement():ContainerFormattedElement
Elementi API correlati
swfContext | proprietà |
swfContext:ISWFContext
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
L'istanza ISWFContext da utilizzare per le chiamate che devono essere effettuate in un contesto SWF specifico
Le implementazioni di IFlowComposer dovrebbero consentire l'impostazione di questa proprietà affinché gli utenti dell'interfaccia possano creare righe in un contesto SWF diverso rispetto a quello che contiene l'implementazione. Deve essere fornita anche un'implementazione predefinita di ISWFContext.
Implementazione
public function get swfContext():ISWFContext
public function set swfContext(value:ISWFContext):void
Elementi API correlati
addController | () | metodo |
public function addController(controller:ContainerController):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Aggiunge un controller a questa istanza di IFlowComposer.
Il contenitore viene aggiunto alla fine dell'elenco dei contenitori.
Parametri
controller:ContainerController — Oggetto ContainerController da aggiungere.
|
addControllerAt | () | metodo |
public function addControllerAt(controller:ContainerController, index:int):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Aggiunge un controller a questa istanza di IFlowComposer in corrispondenza dell'indice specificato.
L'elenco dei controller è basato su 0 (il primo controller ha indice 0).
Parametri
controller:ContainerController — Oggetto ContainerController da aggiungere.
| |
index:int — Indice numerico che specifica la posizione nell'elenco di controller in cui inserire l'oggetto ContainerController.
|
compose | () | metodo |
public function compose():Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Calcola quante righe sono necessarie per visualizzare il contenuto nell'elemento principale del flusso e le posizioni di queste righe nei contenitori di visualizzazione del flusso.
Le implementazioni di questo metodo non dovrebbero aggiornare la visualizzazione, ma salvare i risultati affinché le chiamate successive di compose()
o updateAllControllers()
non eseguano un'ulteriore ricomposizione se il contenuto del flusso non è stato modificato.
Se il contenuto di uno o più contenitori è stato modificato, il metodo deve restituire true
.
Boolean — true se sono stati modificati uno o più elementi.
|
Elementi API correlati
composeToController | () | metodo |
public function composeToController(index:int):Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Compone il contenuto dell'elemento radice fino al contenitore (incluso) all'indice specificato.
Se il contenuto di uno o più contenitori fino al contenitore all'indice specificato (incluso) è stato modificato, il metodo restituisce true
. Se index
è maggiore del numero di controller (o non è specificato), la composizione viene estesa a tutti i contenitori.
Parametri
index:int (default = NaN ) — Compone almeno fino a questo contenitore nell'oggetto TextFlow. Se controllerIndex è maggiore del numero di controller, potete impostare la composizione fino alla fine dell'ultimo contenitore.
|
Boolean — true se sono stati modificati uno o più elementi.
|
Elementi API correlati
composeToPosition | () | metodo |
public function composeToPosition(absolutePosition:int):Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Compone il contenuto dell'elemento radice fino alla posizione specificata.
Se il contenuto di uno o più contenitori fino al contenitore che include il contenuto (incluso) alla posizione specificata è stato modificato, il metodo restituisce true
. Se absolutePosition
è maggiore della lunghezza di TextFlow (o non è specificato), la composizione viene estesa a tutto il flusso.
Parametri
absolutePosition:int (default = NaN ) — Compone almeno fino a questa posizione nell'oggetto TextFlow. Per impostazione predefinita, o se absolutePosition si trova oltre la fine del flusso, potete impostare la composizione fino alla fine del flusso.
|
Boolean — true se sono stati modificati uno o più elementi.
|
Elementi API correlati
damage | () | metodo |
public function damage(startPosition:int, damageLength:int, damageType:String):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Contrassegna le righe come danneggiate e indica la necessità di una ricomposizione.
Parametri
startPosition:int — Inizio dell'intervallo da contrassegnare come danneggiato.
| |
damageLength:int — Numero di caratteri da contrassegnare come danneggiati.
| |
damageType:String — Tipo di danno. Un tipo definito da flashx.textLayout.compose.FlowDamageType.
|
Elementi API correlati
findControllerIndexAtPosition | () | metodo |
public function findControllerIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Restituisce l'indice del controller che include il contenuto nella posizione specificata.
Una posizione può essere considerata come la divisione tra due caratteri o altri elementi di un flusso di testo. Se il valore in absolutePosition
è una posizione tra l'ultimo carattere di un contenitore e il primo carattere del successivo, viene restituito il contenitore precedente se il parametro preferPrevious
è impostato su true
e il contenitore successivo se il parametro preferPrevious
è impostato su false
.
Il metodo deve restituire -1 se il contenuto nella posizione specificata non si trova in alcun contenitore o si trova all'esterno dell'intervallo di posizioni del flusso di testo.
Parametri
absolutePosition:int — La posizione del contenuto per cui viene cercato l'indice del contenitore.
| |
preferPrevious:Boolean (default = false ) — Specifica quale indice di contenitore restituire quando la posizione si trova tra l'ultimo elemento in un contenitore e il primo elemento nel successivo.
|
int — L'indice del controller del contenitore o -1 se non viene trovato.
|
findLineAtPosition | () | metodo |
public function findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Restituisce l'oggetto TextFlowLine che include il contenuto nella posizione specificata.
Una posizione può essere considerata come la divisione tra due caratteri o altri elementi di un flusso di testo. Se il valore in absolutePosition
è una posizione tra l'ultimo elemento di una riga e il primo elemento della successiva, viene restituita la riga precedente se il parametro preferPrevious
è impostato su true
e la riga successiva se il parametro preferPrevious
è impostato su false
.
Parametri
absolutePosition:int — Posizione del contenuto per cui desiderate l'oggetto TextFlowLine.
| |
preferPrevious:Boolean (default = false ) — Specifica la riga da restituire quando la posizione è tra l'ultimo elemento di una riga e il primo elemento della successiva.
|
flashx.textLayout.compose:TextFlowLine — TextFlowLine che include il contenuto nella posizione specificata o null se non viene trovato.
|
findLineIndexAtPosition | () | metodo |
public function findLineIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Restituisce il numero di riga sequenziale dell'oggetto TextFlowLine che include il contenuto alla posizione specificata.
Il numero della prima riga è 0, mentre il numero dell'ultima riga è uguale a quello delle righe meno uno. Se la posizione specificata in absolutePosition
è successiva alla fine del flusso di testo, questo metodo deve restituire il numero che verrà assegnato alla nuova riga successiva aggiunta al flusso di testo (che è uguale al numero delle righe correnti).
Una posizione può essere considerata come la divisione tra due caratteri o altri elementi di un flusso di testo. Se il valore in absolutePosition
è una posizione tra l'ultima riga di un contenitore e la prima riga del successivo, viene restituito il contenitore precedente se il parametro preferPrevious
è impostato su true
e il contenitore successivo se il parametro preferPrevious
è impostato su false
.
Parametri
absolutePosition:int — Posizione del contenuto per cui desiderate la riga di testo.
| |
preferPrevious:Boolean (default = false ) — Specifica quale indice di contenitore restituire quando la posizione si trova tra l'ultima riga in un contenitore e la prima nel successivo.
|
int — Indice della riga di teso nella posizione specificata. Se non viene trovato, considera come successivo alla fine e restituisce il numero di righe.
|
getControllerAt | () | metodo |
public function getControllerAt(index:int):ContainerController
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Restituisce l'oggetto ContainerController all'indice specificato.
Parametri
index:int — L'indice dell'oggetto ContainerController da restituire.
|
ContainerController — L'oggetto ContainerController nella posizione specificata.
|
getControllerIndex | () | metodo |
public function getControllerIndex(controller:ContainerController):int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Restituisce l'indice dell'oggetto ContainerController specificato.
Parametri
controller:ContainerController — Un riferimento all'oggetto ContainerController da trovare.
|
int — L'indice dell'oggetto ContainerController specificato o -1 se il controller non è collegato a questa composizione di flusso.
|
getLineAt | () | metodo |
public function getLineAt(index:int):flashx.textLayout.compose:TextFlowLine
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Restituisce la riga con il numero di riga specificato.
L'elenco di righe è numerato da zero al numero di righe meno uno. Se il valore in index
è esterno ai limiti dell'elenco di righe, questa funzione restituisce null
.
Parametri
index:int — Numero di riga dell'oggetto TextFlowLine da restituire.
|
flashx.textLayout.compose:TextFlowLine — TextFlowLine con il numero di riga specificato o null se non trovato.
|
interactionManagerChanged | () | metodo |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Chiamato dall'oggetto TextFlow quando il gestore dell'interazione cambia.
Le implementazioni di IFlowComposer dovrebbero aggiornare i listener di eventi e le proprietà che fanno riferimento al gestore di interazioni.
Parametri
newInteractionManager:ISelectionManager — La nuova istanza di ISelectionManager.
|
isDamaged | () | metodo |
public function isDamaged(absolutePosition:int):Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Indica se uno o più degli oggetti TextFlowLine tra l'inizio del flusso e la riga che include il contenuto nella posizione specificata sono contrassegnati come danneggiati.
Parametri
absolutePosition:int — Ultima posizione nell'area di interesse.
|
Boolean — true se uno o più degli oggetti TextFlowLine dall'inizio del flusso fino alla riga che include il contenuto in corrispondenza di absolutePosition sono contrassegnati come danneggiati.
|
removeAllControllers | () | metodo |
public function removeAllControllers():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Rimuove tutti i controller da questa istanza di IFlowComposer.
removeController | () | metodo |
public function removeController(controller:ContainerController):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Rimuove un controller da questa istanza di IFlowComposer.
Parametri
controller:ContainerController — L'istanza di ContainerController da rimuovere.
|
removeControllerAt | () | metodo |
setFocus | () | metodo |
public function setFocus(absolutePosition:int, preferPrevious:Boolean = false):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Imposta l'attivazione sul contenitore che comprende la posizione specificata dal parametro absolutePosition
.
Sta all'implementazione definire l'impostazione indicata dall'attivazione. Un'implementazione ad esempio potrebbe utilizzare la proprietà incorporata focus
dell'oggetto Stage (se i contenitori erano InteractiveObjects) oppure l'attivazione potrebbe essere gestita in altro modo.
Parametri
absolutePosition:int — Specifica la posizione nel flusso di testo del contenitore che deve ricevere l'attivazione.
| |
preferPrevious:Boolean (default = false ) — Se true e la posizione si trova prima del primo carattere in un contenitore, imposta l'attivazione alla fine del contenitore precedente.
|
Elementi API correlati
setRootElement | () | metodo |
public function setRootElement(newRootElement:ContainerFormattedElement):void
Parametri
newRootElement:ContainerFormattedElement |
updateAllControllers | () | metodo |
public function updateAllControllers():Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Compone il contenuto dell'elemento principale e aggiorna la visualizzazione.
Il layout del testo avviene in genere in due fasi: composizione e visualizzazione. Nella fase di composizione, la composizione del flusso calcola il numero di righe necessarie per visualizzare il contenuto e la loro posizione nei contenitori di visualizzazione del flusso. Nella fase di visualizzazione, la composizione del flusso aggiorna gli elementi secondari dei contenitori dell'oggetto di visualizzazione. Si prevede che il metodo updateAllControllers()
si occupi di entrambi le fasi. Un'implementazione efficiente terrà traccia delle modifiche al contenuto affinché un ciclo completo di composizione e visualizzazione venga eseguito solo se necessario.
Questo metodo aggiorna tutte le righe di testo e l'elenco di visualizzazione immediatamente e in modo sincrono.
Se il contenuto di uno o più contenitori è stato modificato, il metodo deve restituire true
.
Boolean — true se sono stati modificati uno o più elementi.
|
updateLengths | () | metodo |
public function updateLengths(startPosition:int, deltaLength:int):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Aggiorna la lunghezza delle righe per gestire la mappatura nell'oggetto TextFlow.
Parametri
startPosition:int — Inizio della modifica della lunghezza
| |
deltaLength:int — Modifica del numero di caratteri.
|
updateToController | () | metodo |
public function updateToController(index:int):Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Compone e aggiorna la visualizzazione fino al contenitore (incluso) all'indice specificato.
Si prevede che il metodo updateToController()
componga il contenuto e aggiorni la visualizzazione affinché tutti i contenitori fino a quello all'indice specificato (incluso) siano correnti. Se ad esempio avete una catena di venti contenitori e specificate un indice di 10, updateToController()
garantisce la composizione e la visualizzazione dei contenitori dal primo al decimo (indici 0-9). La composizione si può arrestare a quel punto. Se controllerIndex
è -1 (o non specificato), tutti i contenitori dovrebbero essere aggiornati.
Questo metodo aggiorna tutte le righe di testo e l'elenco di visualizzazione immediatamente e in modo sincrono.
Se il contenuto di uno o più contenitori è stato modificato, il metodo deve restituire true
.
Parametri
index:int (default = NaN ) — Indice dell'ultimo contenitore da aggiornare (per impostazione predefinita aggiorna tutti i contenitori)
|
Boolean — true se sono stati modificati uno o più elementi.
|
Tue Jun 12 2018, 02:44 PM Z