Pakiet | flashx.textLayout.compose |
Klasa | public class StandardFlowComposer |
Dziedziczenie | StandardFlowComposer FlowComposerBase Object |
Implementuje | IFlowComposer |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Każde wywołanie metody compose()
lub updateAllControllers()
w pierwszym etapie powoduje normalizację przepływu tekstu. Proces normalizacji sprawdza części obiektu TextFlow, które zostały zmodyfikowane, a następnie wykonuje następujące kroki:
- Usuwa puste obiekty FlowLeafElement i SubParagraphGroupElement.
- Scala siostrzane zakresy, które mają takie same atrybuty.
- Dodaje pusty akapit, jeśli przepływ jest pusty.
W celu użycia obiektu StandardFlowComposer należy przypisać go do właściwości flowComposer
obiektu TextFlow. Należy wywołać metodę updateAllControllers()
w celu zdefiniowania układu i wyświetlenia tekstu w kontenerach dołączonych do układacza przepływu.
Uwaga: W przypadku prostych, statycznych przepływów tekstu możliwe jest użycie jednej z fabrycznych klas wiersza tekstu. Te klasy zwykle tworzą linie z mniejszym narzutem niż układacz przepływu, ale nie obsługują edycji, zmian dynamicznych ani interakcji użytkownika.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
composing : Boolean [tylko do odczytu]
Jeśli układacz przepływu wykonuje aktualnie operację określania układu, wartością jest true. | StandardFlowComposer | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
damageAbsoluteStart : int [tylko do odczytu]
Bezwzględne położenie bezpośrednio poprzedzające pierwszy element w przepływie tekstu, który wymaga określania układu i aktualizacji. | FlowComposerBase | ||
numControllers : int [tylko do odczytu]
Liczba kontenerów przypisanych do instancji IFlowComposer. | StandardFlowComposer | ||
numLines : int [tylko do odczytu]
Łączna liczba wierszy umieszczonych w przepływie. | FlowComposerBase | ||
rootElement : ContainerFormattedElement [tylko do odczytu]
Element główny skojarzony z instancją IFlowComposer. | StandardFlowComposer | ||
swfContext : ISWFContext
Instancja klasy ISWFContext służąca do realizacji niezbędnych wywołań mechanizmu FTE. | FlowComposerBase | ||
textFlow : flashx.textLayout.elements:TextFlow [tylko do odczytu]
Obiekt TextFlow, do którego dołączony jest dany układacz przepływu. | FlowComposerBase |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy obiekt StandardFlowComposer. | StandardFlowComposer | ||
Dodaje kontroler do danego wystąpienia klasy IFlowComposer. | StandardFlowComposer | ||
Dodaje kontroler do danej instancji klasy IFlowComposer w określonym indeksie. | StandardFlowComposer | ||
Oblicza, ile wierszy jest wymaganych do wyświetlenia treści w elemencie głównym przepływu, a także położenia tych wierszy w kontenerach wyświetlania przepływu. | StandardFlowComposer | ||
Układa treść elementu głównego aż do kontenera (włącznie) w określonym indeksie. | StandardFlowComposer | ||
Układa treść głównego elementu aż do określonego położenia. | StandardFlowComposer | ||
Oznacz wiersze jako uszkodzone i wymagające ponownego ułożenia. | FlowComposerBase | ||
Zwraca indeks kontrolera z zawartością w określonym położeniu. | StandardFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Zwraca obiekt TextFlowLine zawierający zawartość w określonym położeniu. | FlowComposerBase | ||
Zwraca kolejny numer wiersza obiektu TextFlowLine, który zawiera treść w określonym położeniu. | FlowComposerBase | ||
Zwraca bezwzględne położenie pierwszego elementu treści w określonym obiekcie ContainerController. | StandardFlowComposer | ||
Zwraca obiekt ContainerController w określonym indeksie. | StandardFlowComposer | ||
Zwraca indeks określonego obiektu ContainerController. | StandardFlowComposer | ||
Zwraca wiersz o określonym numerze. | FlowComposerBase | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wywoływana przez TextFlow w przypadku zmiany menedżera interakcji. | StandardFlowComposer | ||
Wskazuje, czy jakiekolwiek obiekty TextFlowLine między początkiem przepływu a wierszem zawierającym zawartość w określonym położeniu są oznaczone jako uszkodzone. | FlowComposerBase | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa wszystkie kontrolery z danego wystąpienia klasy IFlowComposer. | StandardFlowComposer | ||
Usuwa kontroler z danego wystąpienia klasy IFlowComposer. | StandardFlowComposer | ||
Usuwa kontroler w określonym indeksie z danej instancji IFlowComposer. | StandardFlowComposer | ||
Ustawia punkt skupienia na kontener, który zawiera położenie określone przez parametr absolutePosition. | StandardFlowComposer | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
StandardFlowComposer | |||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Układa zawartość elementu głównego i aktualizuje obraz na ekranie. | StandardFlowComposer | ||
Długości w wierszach należy zaktualizować, aby zachować odwzorowanie na obiekt TextFlow. | FlowComposerBase | ||
Układa i aktualizuje zawartość wyświetlaną aż do kontenera (i włącznie z nim) w określonym indeksie. | StandardFlowComposer | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Zwraca wartość true, jeśli określenie układu jest wymagane — w przeciwnym wypadku zwraca false | StandardFlowComposer |
composing | właściwość |
numControllers | właściwość |
rootElement | właściwość |
rootElement:ContainerFormattedElement
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Element główny skojarzony z wystąpieniem klasy IFlowComposer.
Tylko obiekt TextFlow może być elementem głównym.
Implementacja
public function get rootElement():ContainerFormattedElement
StandardFlowComposer | () | Konstruktor |
public function StandardFlowComposer()
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Tworzy obiekt StandardFlowComposer.
W celu użycia obiektu StandardFlowComposer należy przypisać go do właściwości flowComposer
obiektu TextFlow. Należy wywołać metodę updateAllControllers()
w celu zdefiniowania układu i wyświetlenia tekstu w kontenerach dołączonych do układacza przepływu.
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function addController(controller:ContainerController):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Dodaje kontroler do danej instancji klasy IFlowComposer.
Kontener dodany do końca listy kontenera.
Parametry
controller:ContainerController — Obiekt ContainerController przeznaczony do dodania.
|
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function addControllerAt(controller:ContainerController, index:int):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Dodaje kontroler do danego wystąpienia klasy IFlowComposer w określonym indeksie.
Elementy listy kontrolerów są numerowane od 0 (pierwszy kontroler ma indeks 0).
Parametry
controller:ContainerController — Obiekt ContainerController przeznaczony do dodania.
| |
index:int — Indeks liczbowy, który określa położenie na liście kontrolera, w którym zostanie wstawiony obiekt ContainerController.
|
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function compose():Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Oblicza, ile wierszy jest wymaganych do wyświetlenia zawartości w elemencie głównym przepływu, a także położenia tych wierszy w kontenerach wyświetlania przepływu.
Metoda compose()
układa treść tylko wówczas, gdy została ona zmieniona od czasu ostatniej operacji określania układu. Wyniki są zapisywane, dzięki czemu kolejne wywołania metody compose()
lub updateAllControllers()
nie wykonują dodatkowych operacji określania układu, jeśli treść przepływu nie uległa zmianie.
Jeśli zawartość kontenera uległa zmianie, metoda zwraca wartość true
.
Boolean — W przypadku jakichkolwiek zmian — true.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_compose { import flashx.textLayout.elements.TextFlow; public function compose(textFlow:TextFlow):void { textFlow.flowComposer.compose(); } } }
composeToController | () | metoda |
public function composeToController(index:int):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Układa zawartość głównego elementu aż do kontenera (włącznie) w określonym indeksie.
Jeśli treść jakiegokolwiek kontenera — łącznie z kontenerem w określonym indeksie — uległa zmianie, metoda zwraca true
. Jeśli wartość index
jest większa od liczby kontrolerów (lub nie jest określona), wówczas układana jest treść wszystkich kontenerów.
Parametry
index:int (default = NaN ) — układ określany przynajmniej do tego kontenera w obiekcie TextFlow. Jeśli wartość controllerIndex jest większa od liczby kontrolerów, układ określany jest do końca ostatniego kontenera.
|
Boolean — W przypadku jakichkolwiek zmian — true.
|
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function composeToPosition(absolutePosition:int):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Układa zawartość elementu głównego aż do określonego położenia.
Jeśli treść jakiegokolwiek kontenera — łącznie z kontenerem zawierającym indeks w określonym położeniu — uległa zmianie, metoda zwraca true
. Jeśli wartość absolutePosition
jest większa od długości przepływu (obiektu TextFlow) lub nie jest określona, wówczas układana jest treść całego kontenera.
Parametry
absolutePosition:int (default = NaN ) — układ określany przynajmniej do tego położenia w obiekcie TextFlow. Domyślnie i w sytuacji, gdy wartość absolutePosition wypada za końcem przepływu, układ określany jest do końca przepływu.
|
Boolean — W przypadku jakichkolwiek zmian — true.
|
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function findControllerIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Zwraca indeks kontrolera zawierającego treść w określonym położeniu.
Położenie może być traktowane jako mniejsze przedziały między dwoma znakami lub innymi elementami przepływu tekstu. Jeśli wartość absolutePosition
jest położeniem między ostatnim znakiem w jednym kontenerze a pierwszym znakiem w następnym kontenerze, wówczas poprzedzający kontener zostanie zwrócony, jeśli parametr preferPrevious
zostanie ustawiony na true
, a kolejny kontener zostanie zwrócony, jeśli dla parametru preferPrevious
zostanie ustawiona wartość false
.
Metoda zwraca -1, jeśli treść w określonym położeniu nie jest zawarta w żadnym kontenerze lub znajduje się poza zakresem położenia w przepływie tekstu.
Parametry
absolutePosition:int — Położenie treści, dla którego poszukiwany jest indeks kontenera.
| |
preferPrevious:Boolean (default = false ) — Określa indeks kontenera, który będzie zwracany, gdy położenie znajduje się w zakresie od ostatniego elementu w pierwszym kontenerze do pierwszego elementu w następnym kontenerze
|
int — indeks kontrolera kontenera lub -1, jeśli nie zostanie znaleziony.
|
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function getAbsoluteStart(controller:ContainerController):int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Zwraca bezwzględne położenie pierwszego elementu zawartości w określonym obiekcie ContainerController.
Położenie jest obliczane poprzez zliczanie odstępu między dwoma znakami lub innymi elementami przepływu tekstu. Położenie poprzedzające pierwszy element przepływu jest równe zero. Położenie bezwzględne jest położeniem zliczanym od początku przepływu.
Parametry
controller:ContainerController — Obiekt ContainerController skojarzony z układaczem przepływu.
|
int — położenie przed pierwszym znakiem lub elementem graficznym w obiekcie ContainerController.
|
getControllerAt | () | metoda |
public function getControllerAt(index:int):ContainerController
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Zwraca obiekt ContainerController w określonym indeksie.
Parametry
index:int — Indeks obiektu ContainerController do zwrócenia.
|
ContainerController — obiekt ContainerController w określonym położeniu.
|
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function getControllerIndex(controller:ContainerController):int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Zwraca indeks określonego obiektu ContainerController.
Parametry
controller:ContainerController — Odniesienie do obiektu ContainerController przeznaczonego do znalezienia.
|
int — indeks określonego obiektu ContainerController lub -1, jeśli kontroler nie jest dołączony do tego układacza przepływu.
|
Przykład ( Sposób korzystania z tego przykładu )
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 | () | metoda |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Wywoływana przez TextFlow w przypadku zmiany menedżera interakcji.
Ta funkcja jest wywoływana automatycznie. Kod nie musi koniecznie wywoływać tej metody. Klasy, które rozszerzają układacza StandardFlowComposer, mogą przesłaniać tę metodę w celu aktualizowania detektorów zdarzeń oraz innych właściwości zależnych od menedżera interakcji.
Parametry
newInteractionManager:ISelectionManager — Nowa instancja klasy ISelectionManager.
|
preCompose | () | metoda |
removeAllControllers | () | metoda |
public function removeAllControllers():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Usuwa wszystkie kontrolery z danej instancji klasy IFlowComposer.
removeController | () | metoda |
public function removeController(controller:ContainerController):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Usuwa kontroler z danej instancji klasy IFlowComposer.
Parametry
controller:ContainerController — Wystąpienie klasy ContainerController do usunięcia.
|
removeControllerAt | () | metoda |
setFocus | () | metoda |
public function setFocus(absolutePosition:int, leanLeft:Boolean = false):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Ustawia punkt skupienia na kontener, który zawiera położenie określone przez parametr absolutePosition
.
Obiekt StandardFlowComposer wywołuje metodę setFocus()
obiektu ContainerController zawierającego określone położenie przepływu tekstu.
Parametry
absolutePosition:int — Określa położenie w przepływie tekstu kontenera, na którym będzie się znajdował punkt skupienia.
| |
leanLeft:Boolean (default = false ) — W przypadku wartości true, jeśli położenie wypada przed pierwszym znakiem w kontenerze, ustawia punkt skupienia na końcu poprzedniego kontenera.
|
Powiązane elementy interfejsu API
setRootElement | () | metoda |
public function setRootElement(newRootElement:ContainerFormattedElement):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Parametry
newRootElement:ContainerFormattedElement |
updateAllControllers | () | metoda |
public function updateAllControllers():Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Układa treść elementu głównego i aktualizuje obraz na ekranie.
Układ tekstu jest tworzony w dwóch fazach: określanie układu i wyświetlanie. W fazie określania układu układacz przepływu oblicza liczbę wierszy wymaganych do wyświetlenia treści, a także położenie tych wierszy w kontenerach wyświetlania przepływu. W fazie wyświetlania układacz przepływu aktualizuje elementy potomne obiektu ekranowego z jego kontenerów. Metoda updateAllControllers()
inicjuje kolejno obydwie fazy. Układacz StandardFlowComposer śledzi zmiany treści, dzięki czemu pełny cykl określania układu i wyświetlania jest wykonywany tylko w razie potrzeby.
Ta metoda natychmiast i synchronicznie aktualizuje wszystkie wiersze tekstu i oraz listę wyświetlania.
Jeśli zawartość któregokolwiek kontenera uległa zmianie, metoda zwraca wartość true
.
Boolean — w przypadku jakichkolwiek zmian — true.
|
updateToController | () | metoda |
public function updateToController(index:int):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Układa i aktualizuje zawartość wyświetlaną aż do kontenera (i włącznie z nim) w określonym indeksie.
Metoda updateToController()
układa treść i aktualizuje treść wyświetlaną wszystkich kontenerów aż do kontenera (wraz z nim) w określonym indeksie. Na przykład: jeśli istnieje łańcuch 20 kontenerów i określony zostanie indeks 10, wówczas metoda updateToController()
spowoduje, że kontenery od pierwszego do dziesiątego (indeksy 0-9) zostaną ułożone i wyświetlone. Po wykonaniu tej operacji proces określania układu zakończy się. Jeśli indeks controllerIndex
ma wartość -1 (nieokreślony), wówczas wszystkie kontenery zostaną zaktualizowane.
Ta metoda natychmiast i synchronicznie aktualizuje wszystkie wiersze tekstu i oraz listę wyświetlania.
Jeśli zawartość któregokolwiek kontenera uległa zmianie, metoda zwraca wartość true
.
Parametry
index:int (default = NaN ) — indeks ostatniego kontenera do aktualizacji (domyślnie aktualizowane są wszystkie kontenery)
|
Boolean — W przypadku jakichkolwiek zmian — true .
|
importToFlow()
obiektu TextConverter.
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(); } } }
Tue Jun 12 2018, 12:06 PM Z