Pakiet | flashx.textLayout.compose |
Interfejs | public interface IFlowComposer |
Implementory | StandardFlowComposer |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Przepływy tekstu wyświetlane za pośrednictwem implementacji układacza przepływu mogą być dynamiczne i interaktywne. Układacz przepływu zarządza jednym kontrolerem wyświetlania lub większą ich liczbą. Każdy kontroler jest skojarzony z kontenerem obiektu wyświetlanego (takiego jak ikonka), za pośrednictwem którego wyświetlane są wiersze utworzone dla przepływu tekstu. Poniższy diagram ilustruje relację między obiektami TextFlow, IFlowComposer, ContainerController oraz DisplayObjectContainer:
Układacz przepływu oblicza, jaka część przepływu tekstu zmieści się w poszczególnych kontenerach, a także dodaje odpowiednie wiersze tekstu do wyświetlanego obiektu kontenera. Interfejs IFlowComposer definiuje osobne metody dla obliczeń układu oraz dla aktualizacji ekranu. IFlowComposer definiuje również metody do przyrostowego układania i aktualizowania przepływu tekstu. Te metody mogą być używane, aby uniknąć blokowania interfejsu użytkownika podczas aktualizowania długich przepływów tekstu.
Oprócz zarządzania kompozycją i wyświetlaniem tekstu układacz przepływu określa również to, na którym kontenerze znajduje się punkt skupienia, zarządza wyświetlaniem podświetlenia przy zaznaczaniu (podświetlenie może przekraczać granice kontenerów), a ponadto zapewnia bezpośredni dostęp do wszystkich obiektów TextLine w przepływie.
W celu użycia implementacji IFlowComposer należy przypisać instancję tej implementacji 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
FlowComposerBase
StandardFlowComposer
TextFlow
StringTextLineFactory
TextFlowTextLineFactory
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. | IFlowComposer | ||
damageAbsoluteStart : int [tylko do odczytu]
Pierwsze niepoprawne położenie w elemencie głównym, jako bezwzględne położenie od początku przepływu. | IFlowComposer | ||
numControllers : int [tylko do odczytu]
Liczba kontenerów przypisanych do instancji IFlowComposer. | IFlowComposer | ||
numLines : int [tylko do odczytu]
Łączna liczba wierszy umieszczonych w przepływie. | IFlowComposer | ||
rootElement : ContainerFormattedElement [tylko do odczytu]
Element główny skojarzony z instancją IFlowComposer. | IFlowComposer | ||
swfContext : ISWFContext
Instancja interfejsu ISWFContext, która ma być używana do realizacji wywołań w kontekście konkretnego pliku SWF. Implementacje interfejsu IFlowComposer powinny zezwalać na ustawianie tej właściwości, tak aby użytkownicy interfejsu mogli tworzyć wiersze w kontekście innego pliku SWF niż ten, który zawiera implementację. | IFlowComposer |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Dodaje kontroler do danego wystąpienia klasy IFlowComposer. | IFlowComposer | ||
Dodaje kontroler do danej instancji klasy IFlowComposer w określonym indeksie. | IFlowComposer | ||
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. | IFlowComposer | ||
Układa treść elementu głównego aż do kontenera (włącznie) w określonym indeksie. | IFlowComposer | ||
Układa treść głównego elementu aż do określonego położenia. | IFlowComposer | ||
Oznacz wiersze jako uszkodzone i wymagające ponownego ułożenia. | IFlowComposer | ||
Zwraca indeks kontrolera z zawartością w określonym położeniu. | IFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Zwraca obiekt TextFlowLine zawierający zawartość w określonym położeniu. | IFlowComposer | ||
Zwraca kolejny numer wiersza obiektu TextFlowLine, który zawiera treść w określonym położeniu. | IFlowComposer | ||
Zwraca obiekt ContainerController w określonym indeksie. | IFlowComposer | ||
Zwraca indeks określonego obiektu ContainerController. | IFlowComposer | ||
Zwraca wiersz o określonym numerze. | IFlowComposer | ||
Wywoływana przez TextFlow w przypadku zmiany menedżera interakcji. | IFlowComposer | ||
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. | IFlowComposer | ||
Usuwa wszystkie kontrolery z danego wystąpienia klasy IFlowComposer. | IFlowComposer | ||
Usuwa kontroler z danego wystąpienia klasy IFlowComposer. | IFlowComposer | ||
Usuwa kontroler w określonym indeksie z danej instancji IFlowComposer. | IFlowComposer | ||
Ustawia punkt skupienia na kontener, który zawiera położenie określone przez parametr absolutePosition. | IFlowComposer | ||
IFlowComposer | |||
Układa zawartość elementu głównego i aktualizuje obraz na ekranie. | IFlowComposer | ||
Długości w wierszach należy zaktualizować, aby zachować odwzorowanie na obiekt TextFlow. | IFlowComposer | ||
Układa i aktualizuje treść wyświetlaną aż do kontenera (i włącznie z nim) w określonym indeksie. | IFlowComposer |
composing | właściwość |
damageAbsoluteStart | właściwość |
numControllers | właściwość |
numLines | właściwość |
numLines:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Łączna liczba wierszy umieszczonych w przepływie. Domyślnie architektura TLF nie tworzy kompozycji całego, dlatego ta wartość może nie być dokładna. Kompozycję ze wszystkimi wierszami można utworzyć za pomocą metody composeToPosition.
Implementacja
public function get numLines():int
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
Powiązane elementy interfejsu API
swfContext | właściwość |
swfContext:ISWFContext
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Instancja interfejsu ISWFContext, która ma być używana do realizacji wywołań w kontekście konkretnego pliku SWF.
Implementacje interfejsu IFlowComposer powinny zezwalać na ustawianie tej właściwości, aby użytkownicy interfejsu mogli tworzyć wiersze w innym kontekście pliku SWF niż kontekst zawierający implementację. Domyślna implementacja interfejsu ISWFContext również powinna być dostępna.
Implementacja
public function get swfContext():ISWFContext
public function set swfContext(value:ISWFContext):void
Powiązane elementy interfejsu API
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.
|
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.
|
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.
Implementacje tej metody nie powinny aktualizować treści wyświetlanej, ale powinny spowodować zapisanie wyników, dzięki czemu kolejne wywołania metody compose()
i updateAllControllers()
nie będą powodowały dodatkowego ponownego określania układu, jeśli treść przepływu nie uległa zmianie.
Jeśli zawartość kontenera uległa zmianie, metoda musi zwracać wartość true
.
Boolean — W przypadku jakichkolwiek zmian — true.
|
Powiązane elementy interfejsu API
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.
|
Powiązane elementy interfejsu API
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.
|
Powiązane elementy interfejsu API
damage | () | metoda |
public function damage(startPosition:int, damageLength:int, damageType:String):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Oznacz wiersze jako uszkodzone i wymagające ponownego ułożenia.
Parametry
startPosition:int — początek zakresu do oznaczenia uszkodzenia.
| |
damageLength:int — liczba znaków do oznaczenia jako uszkodzone.
| |
damageType:String — typ uszkodzenia. Jedna z wartości klasy flashx.textLayout.compose.FlowDamageType.
|
Powiązane elementy interfejsu API
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 musi 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.
|
findLineAtPosition | () | metoda |
public function findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Zwraca obiekt TextFlowLine zawierający 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 elementem w jednym wierszu a pierwszym elementem w następnym wierszu, wówczas poprzedzający wiersz zostanie zwrócony, jeśli parametr preferPrevious
zostanie ustawiony na true
, a kolejny wiersz zostanie zwrócony, jeśli dla parametru preferPrevious
zostanie ustawiona wartość false
.
Parametry
absolutePosition:int — Położenie treści, dla którego wymagany jest obiekt TextFlowLine.
| |
preferPrevious:Boolean (default = false ) — Określa, który wiersz jest zwracany, gdy położenie znajduje się między ostatnim elementem jednego wiersza a pierwszym elementem następnego wiersza.
|
flashx.textLayout.compose:TextFlowLine — Obiekt TextFlowLine zawierający treść w określonym położeniu lub null, jeśli nie został znaleziony.
|
findLineIndexAtPosition | () | metoda |
public function findLineIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Zwraca kolejny numer wiersza obiektu TextFlowLine, który zawiera zawartość w określonym położeniu.
Pierwszy wiersz ma numer 0, a numer ostatniego wiersza jest równy liczbie wierszy pomniejszonej o jeden. Jeśli położenie określone w parametrze absolutePosition
wypada za końcem przepływu tekstu, ta metoda musi zwrócić liczbę, jaka zostanie przypisana do następnego nowego wiersza dodanego do przepływu tekstu (równa liczbie bieżących wierszy).
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 wierszem w jednym kontenerze a pierwszym wierszem 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
.
Parametry
absolutePosition:int — Położenie treści, dla którego wymagany jest wiersz tekstu.
| |
preferPrevious:Boolean (default = false ) — Określa indeks kontenera, który będzie zwracany, gdy położenie znajduje się między ostatnim wierszem w jednym kontenerze a pierwszym wierszem w następnym kontenerze.
|
int — indeks wiersza tekstu w określonym położeniu. Jeśli nie zostanie znaleziony, kod traktuje to jako przekroczenie końca i zwraca liczbę wierszy.
|
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.
|
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.
|
getLineAt | () | metoda |
public function getLineAt(index:int):flashx.textLayout.compose:TextFlowLine
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Zwraca wiersz o określonym numerze.
Lista wierszy jest ponumerowana od zera do liczby wierszy pomniejszonej o jeden. Jeśli wartość w index
znajduje się poza granicami listy wierszy, wówczas ta funkcja zwraca null
.
Parametry
index:int — Liczba wierszy obiektu TextFlowLine do zwrócenia.
|
flashx.textLayout.compose:TextFlowLine — Obiekt TextFlowLine z określoną liczbą wierszy lub null , jeśli obiekt nie został znaleziony.
|
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.
Implementacje klasy IFlowComposer powinny zaktualizować detektory zdarzeń oraz właściwości, które odwołują się do menedżera interakcji.
Parametry
newInteractionManager:ISelectionManager — Nowa instancja klasy ISelectionManager.
|
isDamaged | () | metoda |
public function isDamaged(absolutePosition:int):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Wskazuje, czy jakiekolwiek obiekty TextFlowLine między początkiem przepływu a wierszem zawierającym treść w określonym położeniu są oznaczone jako uszkodzone.
Parametry
absolutePosition:int — ostatnie położenie w obszarze zainteresowania
|
Boolean — True, jeśli dowolny z obiektów TextFlowLine od początku przepływu aż do wiersza zawierającego treść w położeniu absolutePosition jest oznaczony jako uszkodzony.
|
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 — Instancja klasy ContainerController do usunięcia.
|
removeControllerAt | () | metoda |
setFocus | () | metoda |
public function setFocus(absolutePosition:int, preferPrevious: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
.
Do jednego z zadań implementacji należy zdefiniowanie ustawień, jakie określa punkt skupienia. Na przykład: implementacja może korzystać z wbudowanej właściwości focus
obiektu Stage (pod warunkiem że obiektami były obiekty InteractiveObject) lub implementacja może w inny sposób zarządzać punktem skupienia.
Parametry
absolutePosition:int — Określa położenie w przepływie tekstu kontenera, na którym będzie się znajdował punkt skupienia.
| |
preferPrevious: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
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 zwykle 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 podrzędne obiektu wyświetlanego z jego kontenerów. Od metody updateAllControllers()
oczekuje się realizacji obu faz. Wydajna implementacja będzie śledziła zmiany treści, aby pełny cykl określania układu i wyświetlania był wykonywany tylko w razie potrzeby.
Ta metoda natychmiast i synchronicznie aktualizuje wszystkie wiersze tekstu i oraz listę wyświetlania.
Jeśli zawartość kontenera uległa zmianie, metoda musi zwracać wartość true
.
Boolean — w przypadku jakichkolwiek zmian — true.
|
updateLengths | () | metoda |
public function updateLengths(startPosition:int, deltaLength:int):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Długości w wierszach należy zaktualizować, aby zachować odwzorowanie na obiekt TextFlow.
Parametry
startPosition:int — początek zmiany długości
| |
deltaLength:int — zmiana w ilości znaków.
|
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.
Od metody updateToController()
oczekuje się układania i aktualizowania wyświetlania w taki sposób, aby wszystkie kontenery (do kontenera w określonym indeksie włącznie) były aktualne. Na przykład: jeśli istnieje łańcuch dwudziestu 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 tych operacji proces określania układu może zostać zakończony. Jeśli indeks controllerIndex
ma wartość -1 (nieokreślony), wówczas wszystkie kontenery powinny zostać zaktualizowane.
Ta metoda natychmiast i synchronicznie aktualizuje wszystkie wiersze tekstu i oraz listę wyświetlania.
Jeśli zawartość kontenera uległa zmianie, metoda musi 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.
|
Tue Jun 12 2018, 12:06 PM Z