Paket | flashx.textLayout.compose |
Gränssnitt | public interface IFlowComposer |
Implementorer | StandardFlowComposer |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Textflöden som visas med en flödesdispositionsimplementering kan vara dynamiska och interaktiva. Med en flödesdisposition går det att hantera en eller flera visningskontroller. Varje kontrollenhet är kopplad till en visningsobjektbehållare (t.ex. en Sprite) genom vilken de skapade raderna för textflödet slutligen visas. I följande bild visas relationen mellan objekten TextFlow, IFlowComposer, ContainerController och DisplayObjectContainer:
I en flödesdisposition beräknas andelen av ett textflöde som passar i varje behållare och de rätta textraderna läggs till i behållarens visningsobjekt. I IFlowComposer-gränssnittet definieras olika metoder för layoutberäkningar och för att uppdatera visningen. Med IFlowComposer definieras även metoder för stegvis disposition och uppdatering av ett textflöde. Dessa metoder kan användas för att undvika att användargränssnittet blockeras vid uppdatering av långa textflöden.
Förutom hantering av textdispositioner och visning, kontrolleras med en flödesdisposition vilka behållare som är i fokus, hanteringen av markeringens färgöverstrykningsvisning (som kan korsa behållargränser) och dessutom ger den direktåtkomst till alla TextLine-objekt i flödet.
Om du vill använda en IFlowComposer-implementation ska du tilldela en instans av implementationen till flowComposer
-egenskapen i ett TextFlow-objekt. Anropa metoden updateAllControllers()
för att utforma och visa texten i de behållare som är kopplade till flödesdispositionen.
Obs! För enkla, statiska textflöden kan du också använda någon av fabriksklasserna för textrad. De här fabriksklasserna skapar oftast mindre resurskrävande rader (mindre overhead) än en flödesdisposition, men saknar stöd för redigering, dynamiska ändringar och användarinteraktion.
Relaterade API-element
FlowComposerBase
StandardFlowComposer
TextFlow
StringTextLineFactory
TextFlowTextLineFactory
Egenskap | Definieras med | ||
---|---|---|---|
composing : Boolean [skrivskyddad]
True, om flödesdispositionen för tillfället utför en dispositionsåtgärd. | IFlowComposer | ||
damageAbsoluteStart : int [skrivskyddad]
Den första ogiltiga positionen i rotelementet, som en absolut position från flödets början. | IFlowComposer | ||
numControllers : int [skrivskyddad]
Det antal behållare som tilldelats den här IFlowComposer-instansen. | IFlowComposer | ||
numLines : int [skrivskyddad]
Det totala antalet rader som flödet består av. | IFlowComposer | ||
rootElement : ContainerFormattedElement [skrivskyddad]
Det rotelement som är kopplat till den här IFlowComposer-instansen. | IFlowComposer | ||
swfContext : ISWFContext
Den ISWFContext-instans som ska användas för anrop som måste ske i ett visst SWF-sammanhang. Implementeringar av IFlowComposer bör tillåta att den här egenskapen anges, så att gränssnittets användare kan skapa rader i ett annat SWF-sammanhang än det som innehåller implementeringen. | IFlowComposer |
Metod | Definieras med | ||
---|---|---|---|
Lägger till en kontrollenhet till den här IFlowComposer-instansen. | IFlowComposer | ||
Lägger till en kontrollenhet till den här IFlowComposer-instansen vid det angivna indexet. | IFlowComposer | ||
Beräknar det antal rader som behövs för att visa innehållet i flödets rotelement och dessa raders positioner i flödets visningsbehållare. | IFlowComposer | ||
Disponerar innehållet i rotelementet upp till och med behållaren vid det angivna indexet. | IFlowComposer | ||
Disponerar innehållet i rotelementet upp till den angivna positionen. | IFlowComposer | ||
Markera rader som skadade och i behov av omdisposition. | IFlowComposer | ||
Returnerar indexet för den kontrollenhet, som innehåller innehållet vid den angivna positionen. | IFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Returnerar det TextFlowLine-objekt som innehåller innehållet vid den angivna positionen. | IFlowComposer | ||
Returnerar det sekventiella radnumret för det TextFlowLine-objekt som innehåller innehållet vid den angivna positionen. | IFlowComposer | ||
Returnerar ContainerController-objektet vid det angivna indexet. | IFlowComposer | ||
Returnerar indexet för det angivna ContainerController-objektet. | IFlowComposer | ||
Returnerar raden med det angivna radnumret. | IFlowComposer | ||
Anropas av TextFlow när interaktionshanteraren ändras. | IFlowComposer | ||
Anger om något TextFlowLine-objekt mellan flödets början och den rad som innehåller innehållet vid den angivna positionen har markerats som skadat. | IFlowComposer | ||
Tar bort alla kontrollenheter från den här IFlowComposer-instansen. | IFlowComposer | ||
Tar bort en kontrollenhet från den här IFlowComposer-instansen. | IFlowComposer | ||
Tar bort kontrollenheten vid det angivna indexet från den här IFlowComposer-instansen. | IFlowComposer | ||
Anger fokus till den behållare som innehåller den plats som anges av parametern absolutePosition. | IFlowComposer | ||
IFlowComposer | |||
Disponerar innehållet i rotelementet och uppdaterar visningen. | IFlowComposer | ||
Uppdatera radernas längder för att bevara mappningen till TextFlow. | IFlowComposer | ||
Disponerar och uppdaterar visningen upp till och med behållaren vid det angivna indexet. | IFlowComposer |
composing | egenskap |
damageAbsoluteStart | egenskap |
numControllers | egenskap |
numLines | egenskap |
numLines:int
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Det totala antalet rader som flödet består av. Standard är att TLF inte utgör hela flödet och att detta värde kan vara felaktigt. Använd composeToPosition för att få alla rader samlade.
Implementering
public function get numLines():int
rootElement | egenskap |
rootElement:ContainerFormattedElement
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Det rotelement som är kopplat till den här IFlowComposer-instansen.
Endast ett TextFlow-objekt kan vara ett rotelement.
Implementering
public function get rootElement():ContainerFormattedElement
Relaterade API-element
swfContext | egenskap |
swfContext:ISWFContext
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Den ISWFContext-instans som ska användas för anrop som måste ske i ett visst SWF-sammanhang.
Implementeringar av of IFlowComposer bör tillåta att den här egenskapen anges, så att gränssnittets användare kan skapa rader i ett annat SWF-sammanhang än det som innehåller implementeringen. En standardimplementering av ISWFContext bör också finnas.
Implementering
public function get swfContext():ISWFContext
public function set swfContext(value:ISWFContext):void
Relaterade API-element
addController | () | metod |
public function addController(controller:ContainerController):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Lägger till en kontrollenhet till den här IFlowComposer-instansen.
Behållaren läggs till sist i behållarlistan.
Parametrar
controller:ContainerController — Det ContainerController-objekt som ska läggas till.
|
addControllerAt | () | metod |
public function addControllerAt(controller:ContainerController, index:int):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Lägger till en kontrollenhet till den här IFlowComposer-instansen vid det angivna indexet.
Listan med kontrollenheter är nollbaserad (den första kontrollenheten har indexvärdet 0).
Parametrar
controller:ContainerController — Det ContainerController-objekt som ska läggas till.
| |
index:int — Ett numeriskt index, som anger den position i kontrollenhetslistan vid vilken ContainerController-objektet ska infogas.
|
compose | () | metod |
public function compose():Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Beräknar det antal rader som behövs för att visa innehållet i flödets rotelement och dessa raders positioner i flödets visningsbehållare.
Implementeringar av den här metoden ska inte uppdatera visningen, men resultatet ska sparas så att efterföljande anrop av compose()
eller updateAllControllers()
inte utlöser fler omdispositioner om flödesinnehållet inte har ändrats.
Om innehållet i någon behållare har ändrats måste metoden returnera true
.
Boolean — true om något har ändrats.
|
Relaterade API-element
composeToController | () | metod |
public function composeToController(index:int):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Disponerar innehållet i rotelementet upp till och med behållaren vid det angivna indexet.
Om innehållet i någon behållare till och med behållaren med det angivna indexet har ändrats, kommer metoden att returnera true
. Om index
är större än antalet kontrollenheter (eller inte har angetts) disponeras alla behållare.
Parametrar
index:int (default = NaN ) — disponera minst fram till denna behållare i TextFlow. Om controllerIndex är större än antalet kontrollenheter utförs dispositionen till slutet av den sista behållaren.
|
Boolean — true om något har ändrats.
|
Relaterade API-element
composeToPosition | () | metod |
public function composeToPosition(absolutePosition:int):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Disponerar innehållet i rotelementet upp till den angivna positionen.
Om innehållet i någon behållare till och med behållaren med innehållet vid den angivna positionen har ändrats, kommer metoden att returnera true
. Om absolutePosition
är större än längden på TextFlow (eller inte har angetts) disponeras hela flödet.
Parametrar
absolutePosition:int (default = NaN ) — disponera minst fram till denna position i TextFlow. Som standard, eller om absolutePosition är förbi slutet av flödet, utförs dispositionen till slutet av flödet.
|
Boolean — true om något har ändrats.
|
Relaterade API-element
damage | () | metod |
public function damage(startPosition:int, damageLength:int, damageType:String):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Markera rader som skadade och i behov av omdisposition.
Parametrar
startPosition:int — början av det intervall som ska skadas
| |
damageLength:int — antal tecken som ska skadas
| |
damageType:String — typ av skada. En av flashx.textLayout.compose.FlowDamageType
|
Relaterade API-element
findControllerIndexAtPosition | () | metod |
public function findControllerIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Returnerar indexet för den kontrollenhet, som innehåller innehållet vid den angivna positionen.
En position kan definieras som gränsen mellan två tecken eller andra element i ett textflöde. Om värdet i absolutePosition
är en position mellan det sista tecknet i en behållare och det första tecknet i nästa, returneras föregående behållare om parametern preferPrevious
är inställd på true
och den efterföljande behållaren returneras om parametern preferPrevious
är inställd på false
.
Metoden måste returnera -1 om innehållet vid den angivna positionen inte är någon behållare eller ligger utanför positionsintervallet i textflödet.
Parametrar
absolutePosition:int — Positionen för det innehåll vars behållarindex eftersöks.
| |
preferPrevious:Boolean (default = false ) — Anger vilket behållarindex som ska returneras när positionen är mellan det sista elementet i en behållare och det första elementet i nästa.
|
int — index för behållarens kontrollenhet eller -1 om ingen hittas.
|
findLineAtPosition | () | metod |
public function findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Returnerar det TextFlowLine-objekt som innehåller innehållet vid den angivna positionen.
En position kan definieras som gränsen mellan två tecken eller andra element i ett textflöde. Om värdet i absolutePosition
är en position mellan det sista elementet i en rad och det första elementet i nästa, returneras föregående rad om parametern preferPrevious
är inställd på true
och den efterföljande raden returneras om parametern preferPrevious
är inställd på false
.
Parametrar
absolutePosition:int — Positionen för innehållet till TextFlowLine-objektet.
| |
preferPrevious:Boolean (default = false ) — Anger vilken rad som ska returneras när positionen är mellan det sista elementet i en rad och det första elementet i nästa.
|
flashx.textLayout.compose:TextFlowLine — Den TextFlowLine som innehåller innehållet vid den angivna positionen eller null, om ingen hittas.
|
findLineIndexAtPosition | () | metod |
public function findLineIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Returnerar det sekventiella radnumret för det TextFlowLine-objekt som innehåller innehållet vid den angivna positionen.
Numret för första raden är 0 och numret för den sista raden är lika med antalet rader minus ett. Om positionen som anges i absolutePosition
ligger utanför slutet av textflödet, måste den här metoden returnera talet som kommer att tilldelas nästa nya rad som läggs till i textflödet (vilket är lika med antalet aktuella rader).
En position kan definieras som gränsen mellan två tecken eller andra element i ett textflöde. Om värdet i absolutePosition
är en position mellan den sista raden i en behållare och den första raden i nästa, returneras föregående behållare om parametern preferPrevious
är inställd på true
och den efterföljande behållaren returneras om parametern preferPrevious
är inställd på false
.
Parametrar
absolutePosition:int — Positionen för innehållet till textraden.
| |
preferPrevious:Boolean (default = false ) — Anger vilket behållarindex som ska returneras när positionen är mellan den sista raden i en behållare och den första raden i nästa.
|
int — index för textraden vid den angivna positionen. Om inget hittas behandlas det som förbi slutet, och antalet rader returneras.
|
getControllerAt | () | metod |
public function getControllerAt(index:int):ContainerController
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Returnerar ContainerController-objektet vid det angivna indexet.
Parametrar
index:int — Index för det ContainerController-objekt som ska returneras.
|
ContainerController — ContainerController-objektet vid den angivna positionen.
|
getControllerIndex | () | metod |
public function getControllerIndex(controller:ContainerController):int
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Returnerar indexet för det angivna ContainerController-objektet.
Parametrar
controller:ContainerController — En referens till det ContainerController-objekt som ska hittas.
|
int — index för det angivna ContainerController-objektet eller -1 om kontrollenheten inte är kopplad till den här flödesdispositionen.
|
getLineAt | () | metod |
public function getLineAt(index:int):flashx.textLayout.compose:TextFlowLine
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Returnerar raden med det angivna radnumret.
Radlistan är numrerad från noll till antalet rader minus ett. Om värdet i index
ligger utanför gränserna för listan med rader, kommer funktionen att returnera null
.
Parametrar
index:int — Radnumret för det TextFlowLine-objekt som ska returneras.
|
flashx.textLayout.compose:TextFlowLine — TextFlowLine med angivet radnummer eller null , om ingen hittas.
|
interactionManagerChanged | () | metod |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Anropas av TextFlow när interaktionshanteraren ändras.
Implementeringar av IFlowComposer ska uppdatera händelseavlyssnare och egenskaper som refererar till interaktionshanteraren.
Parametrar
newInteractionManager:ISelectionManager — Den nya ISelectionManager-instansen.
|
isDamaged | () | metod |
public function isDamaged(absolutePosition:int):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Anger om något TextFlowLine-objekt mellan flödets början och den rad som innehåller innehållet vid den angivna positionen har markerats som skadat.
Parametrar
absolutePosition:int — den sista positionen i det aktuella området
|
Boolean — true om något av TextFlowLine-objekten från början av flödet upp till den rad som innehåller innehållet vid absolutePosition har markerats som skadat.
|
removeAllControllers | () | metod |
public function removeAllControllers():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Tar bort alla kontrollenheter från den här IFlowComposer-instansen.
removeController | () | metod |
public function removeController(controller:ContainerController):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Tar bort en kontrollenhet från den här IFlowComposer-instansen.
Parametrar
controller:ContainerController — Den ContainerController-instans som ska tas bort.
|
removeControllerAt | () | metod |
setFocus | () | metod |
public function setFocus(absolutePosition:int, preferPrevious:Boolean = false):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Anger fokus till den behållare som innehåller den plats som anges av parametern absolutePosition
.
Det är under implementeringen som definitionen av fokusinställningen ska göras. I en implementeringen kan till exempel den inbyggda focus
-egenskapen för Stage-objektet användas (så länge som behållarna är InteractiveObjects). Fokus kan även hanteras på annat sätt under implementeringen.
Parametrar
absolutePosition:int — Anger positionen i textflödet för den behållare som ska få fokus.
| |
preferPrevious:Boolean (default = false ) — Om värdet är true och positionen ligger före det första tecknet i en behållare, ställs fokus in mot slutet av föregående behållare.
|
Relaterade API-element
setRootElement | () | metod |
public function setRootElement(newRootElement:ContainerFormattedElement):void
Parametrar
newRootElement:ContainerFormattedElement |
updateAllControllers | () | metod |
public function updateAllControllers():Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Disponerar innehållet i rotelementet och uppdaterar visningen.
Textlayout utförs vanligtvis i två faser: disposition och visning. I dispositionsfasen beräknas i flödesdisposition hur många rader som behövs för att visa innehållet samt positionen för dessa rader i flödets visningsbehållare. Under visningsfasen uppdaterar flödesdispositionen visningsobjektets underordnade objekt för dess behållare. I metoden updateAllControllers()
förväntas att båda faserna utförs. Vid en effektiv implementering kontrolleras ändringarna av innehållet så att en komplett disposition och visning endast görs när det finns behov till det.
Den här metoden uppdaterar alla textrader och visningslistan direkt och synkront.
Om innehållet i någon behållare ändras måste metoden returnera true
.
Boolean — true om något har ändrats.
|
updateLengths | () | metod |
public function updateLengths(startPosition:int, deltaLength:int):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Uppdatera radernas längder för att bevara mappningen till TextFlow.
Parametrar
startPosition:int — start för längdändring
| |
deltaLength:int — ändring i antal tecken.
|
updateToController | () | metod |
public function updateToController(index:int):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Disponerar och uppdaterar visningen upp till och med behållaren vid det angivna indexet.
I metoden updateToController()
förväntas att både innehållet disponeras och visningen uppdateras så att alla behållare till och med behållaren till angivet index är aktuella. Om du till exempel har en kedja på 20 behållare och anger att indexet ska vara 10, säkerställs med updateToController()
att de första tio (index 0-9) behållarna disponeras och visas. Dispositionen kan avslutas vid denna punkt. Om controllerIndex
är -1 (eller inte angivet) ska alla behållare uppdateras.
Den här metoden uppdaterar alla textrader och visningslistan direkt och synkront.
Om innehållet i någon behållare ändras måste metoden returnera true
.
Parametrar
index:int (default = NaN ) — index för den sista behållaren som ska uppdateras, standard är att alla behållare uppdateras
|
Boolean — true om något har ändrats.
|
Tue Jun 12 2018, 01:40 PM Z