| Paket | flashx.textLayout.events |
| Klasse | public class CompositionCompleteEvent |
| Vererbung | CompositionCompleteEvent Event Object |
| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Die drei wichtigsten Methoden, die dieses Ereignis auslösen, sind compose(), updateToController() und updateAllControllers(). Alle diese drei Methoden sind in der StandardFlowComposer-Klasse enthalten.
Hinweis: Wenn das Ereignis von der updateAllControllers()-Methode ausgelöst wird, rufen Sie die updateAllControllers()-Methode in der Ereignisprozedurfunktion nicht erneut auf. Dies wäre ein rekursiver Aufruf, da die updateAllControllers()-Methode sowohl die Zusammenstellungs- als auch die Anzeigeschritte ausführt. Durch updateAllControllers() wird dieses Ereignis ausgelöst, nachdem die Zusammenstellung abgeschlossen ist, aber bevor der Anzeigeschritt ausgeführt wird. Die gleiche Logik gilt für die updateToController()-Methode.
Verwandte API-Elemente
| Eigenschaft | Definiert von | ||
|---|---|---|---|
![]() | bubbles : Boolean [schreibgeschützt]
Gibt an, ob es sich bei dem Ereignis um ein Bubbling-Ereignis handelt. | Event | |
![]() | cancelable : Boolean [schreibgeschützt]
Gibt an, ob das mit dem Ereignis verknüpfte Verhalten verhindert werden kann. | Event | |
| compositionLength : int
Die Anzahl der zusammengestellten Zeichen. | CompositionCompleteEvent | ||
| compositionStart : int
Die Startposition des Textbereichs, der von der Zusammenstellung betroffen ist, ausgedrückt als Indexposition innerhalb des Textflusses. | CompositionCompleteEvent | ||
![]() | constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | |
![]() | currentTarget : Object [schreibgeschützt]
Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. | Event | |
![]() | eventPhase : uint [schreibgeschützt]
Die aktuelle Phase im Ereignisablauf. | Event | |
![]() | prototype : Object [statisch]
Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts. | Object | |
![]() | target : Object [schreibgeschützt]
Das Ereignis-Ziel. | Event | |
| textFlow : flashx.textLayout.elements:TextFlow
TextFlow, in dem die Zusammenstellung abgeschlossen wurde. | CompositionCompleteEvent | ||
![]() | type : String [schreibgeschützt]
Der Typ des Ereignisses. | Event | |
| Methode | Definiert von | ||
|---|---|---|---|
CompositionCompleteEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, textFlow:flashx.textLayout.elements:TextFlow = null, compositionStart:int = 0, compositionLength:int = 0) Konstruktor
| CompositionCompleteEvent | ||
![]() |
Dupliziert eine Instanz einer Event-Unterklasse. | Event | |
![]() |
Eine Dienstprogrammfunktion zur Implementierung der toString()-Methode in benutzerdefinierten ActionScript 3.0 Event-Klassen. | Event | |
![]() |
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | |
![]() |
Überprüft, ob die preventDefault()-Methode bei dem Ereignis aufgerufen wurde. | Event | |
![]() |
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | |
![]() |
Bricht das Standardverhalten eines Ereignisses ab, wenn dieses Verhalten abgebrochen werden kann. | Event | |
![]() |
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | |
![]() |
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | |
![]() |
Verhindert die Verarbeitung von Ereignis-Listenern im aktuellen Knoten und in Knoten, die dem aktuellen Knoten im Ereignisablauf nachfolgen. | Event | |
![]() |
Verhindert die Verarbeitung von Ereignis-Listenern in Knoten, die dem aktuellen Knoten im Ereignisablauf nachfolgen. | Event | |
![]() |
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | |
![]() |
Gibt eine Zeichenfolge zurück, die alle Eigenschaften des Ereignisobjekts enthält. | Event | |
![]() |
Gibt den Grundwert des angegebenen Objekts zurück. | Object | |
| Konstante | Definiert von | ||
|---|---|---|---|
![]() | ACTIVATE : String = "activate" [statisch]
Die ACTIVATE-Konstante bestimmt den Wert der type-Eigenschaft eines activate-Ereignisobjekts. | Event | |
![]() | ADDED : String = "added" [statisch]
Die Event.ADDED-Konstante definiert den Wert der type-Eigenschaft eines added-Ereignisobjekts. | Event | |
![]() | ADDED_TO_STAGE : String = "addedToStage" [statisch]
Die Event.ADDED_TO_STAGE-Konstante definiert den Wert der type-Eigenschaft eines addedToStage-Ereignisobjekts. | Event | |
![]() | CANCEL : String = "cancel" [statisch]
Die Event.CANCEL-Konstante definiert den Wert der type-Eigenschaft eines cancel-Ereignisobjekts. | Event | |
![]() | CHANGE : String = "change" [statisch]
Die Event.CHANGE-Konstante definiert den Wert der type-Eigenschaft eines change-Ereignisobjekts. | Event | |
![]() | CLEAR : String = "clear" [statisch]
Die Event.CLEAR-Konstante definiert den Wert der type-Eigenschaft eines clear-Ereignisobjekts. | Event | |
![]() | CLOSE : String = "close" [statisch]
Die Event.CLOSE-Konstante definiert den Wert der type-Eigenschaft eines close-Ereignisobjekts. | Event | |
![]() | CLOSING : String = "closing" [statisch]
Die Event.CLOSING-Konstante definiert den Wert der type-Eigenschaft eines closing-Ereignisobjekts. | Event | |
![]() | COMPLETE : String = "complete" [statisch]
Die Event.COMPLETE-Konstante definiert den Wert der type-Eigenschaft eines complete-Ereignisobjekts. | Event | |
| COMPOSITION_COMPLETE : String = "compositionComplete" [statisch]
Definiert den Wert der type-Eigenschaft eines compositionComplete-Ereignisobjekts
| CompositionCompleteEvent | ||
![]() | CONNECT : String = "connect" [statisch]
Die Event.CONNECT-Konstante definiert den Wert der type-Eigenschaft eines connect-Ereignisobjekts. | Event | |
![]() | CONTEXT3D_CREATE : String = "context3DCreate" [statisch]
Die Event.CONTEXT3D_CREATE-Konstante definiert den Wert der type-Eigenschaft eines context3Dcreate-Ereignisobjekts. | Event | |
![]() | COPY : String = "copy" [statisch]
Definiert den Wert der type-Eigenschaft eines copy-Ereignisobjekts. | Event | |
![]() | CUT : String = "cut" [statisch]
Definiert den Wert der type-Eigenschaft eines cut-Ereignisobjekts. | Event | |
![]() | DEACTIVATE : String = "deactivate" [statisch]
Die Event.DEACTIVATE-Konstante definiert den Wert der type-Eigenschaft eines deactivate-Ereignisobjekts. | Event | |
![]() | DISPLAYING : String = "displaying" [statisch]
Die Event.DISPLAYING-Konstante definiert den Wert der type-Eigenschaft eines displaying-Ereignisobjekts. | Event | |
![]() | ENTER_FRAME : String = "enterFrame" [statisch]
Die Event.ENTER_FRAME-Konstante definiert den Wert der type-Eigenschaft eines enterFrame-Ereignisobjekts. | Event | |
![]() | EXIT_FRAME : String = "exitFrame" [statisch]
Die Event.EXIT_FRAME-Konstante definiert den Wert der type-Eigenschaft eines exitFrame-Ereignisobjekts. | Event | |
![]() | EXITING : String = "exiting" [statisch]
Die Event.EXITING-Konstante definiert den Wert der type-Eigenschaft eines exiting-Ereignisobjekts. | Event | |
![]() | FRAME_CONSTRUCTED : String = "frameConstructed" [statisch]
Die Event.FRAME_CONSTRUCTED-Konstante definiert den Wert der type-Eigenschaft eines frameConstructed-Ereignisobjekts. | Event | |
![]() | FULLSCREEN : String = "fullScreen" [statisch]
Die Event.FULL_SCREEN-Konstante definiert den Wert der type-Eigenschaft eines fullScreen-Ereignisobjekts. | Event | |
![]() | HTML_BOUNDS_CHANGE : String = "htmlBoundsChange" [statisch]
Die Event.HTML_BOUNDS_CHANGE-Konstante definiert den Wert der type-Eigenschaft eines htmlBoundsChange-Ereignisobjekts. | Event | |
![]() | HTML_DOM_INITIALIZE : String = "htmlDOMInitialize" [statisch]
Die Event.HTML_DOM_INITIALIZE-Konstante definiert den Wert der type-Eigenschaft eines htmlDOMInitialize-Ereignisobjekts. | Event | |
![]() | HTML_RENDER : String = "htmlRender" [statisch]
Die Event.HTML_RENDER-Konstante definiert den Wert der type-Eigenschaft eines htmlRender-Ereignisobjekts. | Event | |
![]() | ID3 : String = "id3" [statisch]
Die Event.ID3-Konstante definiert den Wert der type-Eigenschaft eines id3-Ereignisobjekts. | Event | |
![]() | INIT : String = "init" [statisch]
Die Event.INIT-Konstante definiert den Wert der type-Eigenschaft eines init-Ereignisobjekts. | Event | |
![]() | LOCATION_CHANGE : String = "locationChange" [statisch]
Die Event.LOCATION_CHANGE-Konstante definiert den Wert der type-Eigenschaft eines locationChange-Ereignisobjekts. | Event | |
![]() | MOUSE_LEAVE : String = "mouseLeave" [statisch]
Die Event.MOUSE_LEAVE-Konstante definiert den Wert der type-Eigenschaft eines mouseLeave-Ereignisobjekts. | Event | |
![]() | NETWORK_CHANGE : String = "networkChange" [statisch]
Die Event.NETWORK_CHANGE-Konstante definiert den Wert der type-Eigenschaft eines networkChange-Ereignisobjekts. | Event | |
![]() | OPEN : String = "open" [statisch]
Die Event.OPEN-Konstante definiert den Wert der type-Eigenschaft eines open-Ereignisobjekts. | Event | |
![]() | PASTE : String = "paste" [statisch]
Die Event.PASTE-Konstante definiert den Wert der type-Eigenschaft eines paste-Ereignisobjekts. | Event | |
![]() | PREPARING : String = "preparing" [statisch]
Die Event.PREPARING-Konstante definiert den Wert der type-Eigenschaft eines preparing-Ereignisobjekts. | Event | |
![]() | REMOVED : String = "removed" [statisch]
Die Event.REMOVED-Konstante definiert den Wert der type-Eigenschaft eines removed-Ereignisobjekts. | Event | |
![]() | REMOVED_FROM_STAGE : String = "removedFromStage" [statisch]
Die Event.REMOVED_FROM_STAGE-Konstante definiert den Wert der type-Eigenschaft eines removedFromStage-Ereignisobjekts. | Event | |
![]() | RENDER : String = "render" [statisch]
Die Event.RENDER-Konstante definiert den Wert der type-Eigenschaft eines render-Ereignisobjekts. | Event | |
![]() | RESIZE : String = "resize" [statisch]
Die Event.RESIZE-Konstante definiert den Wert der type-Eigenschaft eines resize-Ereignisobjekts. | Event | |
![]() | SCROLL : String = "scroll" [statisch]
Die Event.SCROLL-Konstante definiert den Wert der type-Eigenschaft eines scroll-Ereignisobjekts. | Event | |
![]() | SELECT : String = "select" [statisch]
Die Event.SELECT-Konstante definiert den Wert der type-Eigenschaft eines select-Ereignisobjekts. | Event | |
![]() | SELECT_ALL : String = "selectAll" [statisch]
Die Event.SELECT_ALL-Konstante definiert den Wert der type-Eigenschaft eines selectALL-Ereignisobjekts. | Event | |
![]() | SOUND_COMPLETE : String = "soundComplete" [statisch]
Die Event.SOUND_COMPLETE-Konstante definiert den Wert der type-Eigenschaft eines soundComplete-Ereignisobjekts. | Event | |
![]() | STANDARD_ERROR_CLOSE : String = "standardErrorClose" [statisch]
Die Event.STANDARD_ERROR_CLOSE-Konstante definiert den Wert der type-Eigenschaft eines standardErrorClose-Ereignisobjekts. | Event | |
![]() | STANDARD_INPUT_CLOSE : String = "standardInputClose" [statisch]
Die Event.STANDARD_INPUT_CLOSE-Konstante definiert den Wert der type-Eigenschaft eines standardInputClose-Ereignisobjekts. | Event | |
![]() | STANDARD_OUTPUT_CLOSE : String = "standardOutputClose" [statisch]
Die Event.STANDARD_OUTPUT_CLOSE-Konstante definiert den Wert der type-Eigenschaft eines standardOutputClose-Ereignisobjekts. | Event | |
![]() | TAB_CHILDREN_CHANGE : String = "tabChildrenChange" [statisch]
Die Event.TAB_CHILDREN_CHANGE-Konstante definiert den Wert der type-Eigenschaft eines tabChildrenChange-Ereignisobjekts. | Event | |
![]() | TAB_ENABLED_CHANGE : String = "tabEnabledChange" [statisch]
Die Event.TAB_ENABLED_CHANGE-Konstante definiert den Wert der type-Eigenschaft eines tabEnabledChange-Ereignisobjekts. | Event | |
![]() | TAB_INDEX_CHANGE : String = "tabIndexChange" [statisch]
Die Event.TAB_INDEX_CHANGE-Konstante definiert den Wert der type-Eigenschaft eines tabIndexChange-Ereignisobjekts. | Event | |
![]() | TEXT_INTERACTION_MODE_CHANGE : String = "textInteractionModeChange" [statisch]
Die Event.TEXT_INTERACTION_MODE_CHANGE-Konstante definiert den Wert der type-Eigenschaft eines Interaktionsmodusereignisobjekts. | Event | |
![]() | UNLOAD : String = "unload" [statisch]
Die Event.UNLOAD-Konstante definiert den Wert der type-Eigenschaft eines unload-Ereignisobjekts. | Event | |
![]() | USER_IDLE : String = "userIdle" [statisch]
Die Event.USER_IDLE-Konstante definiert den Wert der type-Eigenschaft eines userIdle-Ereignisobjekts. | Event | |
![]() | USER_PRESENT : String = "userPresent" [statisch]
Die Event.USER_PRESENT-Konstante definiert den Wert der type-Eigenschaft eines userPresent-Ereignisobjekts. | Event | |
compositionLength | Eigenschaft |
compositionStart | Eigenschaft |
compositionStart:int| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Die Startposition des Textbereichs, der von der Zusammenstellung betroffen ist, ausgedrückt als Indexposition innerhalb des Textflusses.
Implementierung
public function get compositionStart():int public function set compositionStart(value:int):voidtextFlow | Eigenschaft |
textFlow:flashx.textLayout.elements:TextFlow| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
TextFlow, in dem die Zusammenstellung abgeschlossen wurde.
Implementierung
public function get textFlow():flashx.textLayout.elements:TextFlow public function set textFlow(value:flashx.textLayout.elements:TextFlow):voidCompositionCompleteEvent | () | Konstruktor |
public function CompositionCompleteEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, textFlow:flashx.textLayout.elements:TextFlow = null, compositionStart:int = 0, compositionLength:int = 0)| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Konstruktor
Parametertype:String — Ereignistyp - verwenden Sie die statische COMPOSITION_COMPLETE-Eigenschaft.
| |
bubbles:Boolean (default = false) — Gibt an, ob es sich bei dem Ereignis um ein Bubbling-Ereignis handelt. Dieses Ereignis propagiert nicht.
| |
cancelable:Boolean (default = false) — Gibt an, ob das mit dem Ereignis verknüpfte Verhalten verhindert werden kann. Dieses Ereignis kann nicht abgebrochen werden.
| |
textFlow:flashx.textLayout.elements:TextFlow (default = null) — Der zusammengestellte TextFlow.
| |
compositionStart:int (default = 0) — Begin der Zusammenstellung als Indexposition im Textfluss.
| |
compositionLength:int (default = 0) — Länge - die Anzahl der zusammengesetzten Zeichen
|
COMPOSITION_COMPLETE | Konstante |
public static const COMPOSITION_COMPLETE:String = "compositionComplete"| Sprachversion: | ActionScript 3.0 |
| Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Definiert den Wert der type-Eigenschaft eines compositionComplete-Ereignisobjekts
In diesem Beispiel wird beschrieben, wie mit der CompositionCompleteEvent-Klasse ein bestimmtes Wort in einem TextFlow markiert wird. Diese Technik stellt eine Alternative zum Festlegen der TextLayoutFormat.backgroundColor-Eigenschaft dar, bevor der Text zusammengestellt wird.
Die compositionCompleteHandler()-Methode wird ausgeführt, nachdem die updateAllControllers()-Methode die Ausführung durch Textzusammenstellung startet, aber bevor updateAllControllers() die Ausführung durch Aktualisieren der Anzeigeliste abschließt. Dadurch kann die Ereignisprozedurmethode die Hervorhebung des Worts "shall" zeichnen, bevor durch updateAllControllers() die Anzeigeliste aktualisiert wird.
package flashx.textLayout.events.examples
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.text.engine.TextLine;
import flashx.textLayout.compose.StandardFlowComposer;
import flashx.textLayout.compose.TextFlowLine;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.conversion.TextConverter;
import flashx.textLayout.elements.FlowLeafElement;
import flashx.textLayout.elements.ParagraphElement;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.events.CompositionCompleteEvent;
public class CompositionCompleteEvent_example extends Sprite
{
private var wordToHighlight:String = "shall";
private var poemContainer:Sprite;
private var txtFlow:TextFlow;
private var controller:ContainerController;
private const 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";
public function CompositionCompleteEvent_example()
{
poemContainer = new Sprite();
txtFlow = new TextFlow();
poemContainer.x = 30;
poemContainer.y = 30;
this.stage.addChild( poemContainer );
controller = new ContainerController(poemContainer, 300, 230);
controller.verticalScrollPolicy = flashx.textLayout.container.ScrollPolicy.OFF;
txtFlow = TextConverter.importToFlow( poem, TextConverter.PLAIN_TEXT_FORMAT );
txtFlow.flowComposer = new StandardFlowComposer();
txtFlow.addEventListener(CompositionCompleteEvent.COMPOSITION_COMPLETE, compositionCompleteHandler);
txtFlow.flowComposer.addController( controller );
txtFlow.flowComposer.updateAllControllers();
}
private function compositionCompleteHandler(event:CompositionCompleteEvent):void {
if (event.textFlow == txtFlow) {
checkForMatchingWord();
}
}
private function checkForMatchingWord():void {
var currentLeaf:FlowLeafElement = txtFlow.getFirstLeaf();
var currentParagraph:ParagraphElement = currentLeaf ? currentLeaf.getParagraph() : null;
while (currentParagraph) { // iterate over all paragraphs in the text flow
var paraStart:uint = currentParagraph.getAbsoluteStart();
var currWordBoundary:int = 0;
var nextWordBoundary:int = 0;
var pattern:RegExp = new RegExp(wordToHighlight, "i");
while (true) { // iterate over letters in a word
nextWordBoundary = currentParagraph.findNextWordBoundary(currWordBoundary);
if (nextWordBoundary == currWordBoundary) {
break; // end of paragraph; break of inner while loop
}
var word:String = '';
var indexInLeaf:int = currWordBoundary + paraStart - currentLeaf.getAbsoluteStart();
var wordLen:uint = nextWordBoundary - currWordBoundary;
while (true){ // traverse consecutive leaf elements looking for 'wordLen' characters
// Take as many characters from the current leaf as possible to meet the quota of 'wordLen'
var consumeCount:uint = indexInLeaf + wordLen <= currentLeaf.textLength ? wordLen : currentLeaf.textLength - indexInLeaf;
word += currentLeaf.text.substr (indexInLeaf, consumeCount);
wordLen -= consumeCount;
if (!wordLen)
break;
// Quota not met; move to the next leaf
// Also reset the index where the next leaf will be scanned
currentLeaf = currentLeaf.getNextLeaf();
indexInLeaf = 0;
}
if (pattern.test(word)) {
highlightWord(currWordBoundary, nextWordBoundary, word, paraStart);
}
currWordBoundary = nextWordBoundary;
}
// At this point, currentLeaf is the last leaf in currentParagraph. Move to the next paragraph.
currentLeaf = currentLeaf.getNextLeaf();
currentParagraph = currentLeaf ? currentLeaf.getParagraph() : null;
}
}
private function highlightWord(begin:int, end:int, word:String, paraStart:int):void {
var absoluteBegin:int = paraStart + begin;
var absoluteEnd:int = paraStart + end;
var startTextFlowLineIndex:int = txtFlow.flowComposer.findLineIndexAtPosition(absoluteBegin);
var endTextFlowLineIndex:int = txtFlow.flowComposer.findLineIndexAtPosition(absoluteEnd);
var txtFlowLine:TextFlowLine = txtFlow.flowComposer.getLineAt(startTextFlowLineIndex);
var txtLine:TextLine = txtFlowLine.getTextLine();
// get the bounds of the first and last Atom of the textLine
var startbounds:Rectangle = txtLine.getAtomBounds(txtLine.getAtomIndexAtCharIndex(begin));
var endbounds:Rectangle = txtLine.getAtomBounds(txtLine.getAtomIndexAtCharIndex(end));
var box:Sprite = new Sprite();
var g:Graphics = box.graphics;
g.lineStyle(1, 0xFFFF00, 0.5); // set line style
g.beginFill(0xFFFF00, 0.3); // set fill style
// draw a rectangle around the specified boundaries
g.drawRect(startbounds.left, startbounds.top, (endbounds.x - startbounds.x), startbounds.height);
txtLine.addChild(box);
}
}
}
Wed Apr 11 2012, 04:58 AM -07:00
Vererbte öffentliche Eigenschaften ausblenden
Vererbte öffentliche Eigenschaften anzeigen