blob: e4332a50e84db77ebe873982cc1da6e53c7e730a [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package flashx.textLayout.events
{
import flash.events.Event;
import flashx.textLayout.elements.TextFlow;
/**
* A TextFlow instance dispatches this event after a compose operation completes.
* Each text container has two states: composition and display. This event notifies
* you when the composition phase has ended. This provides an opportunity to make any
* necessary and appropriate changes to the container before you display the text.
* For example, you can use this event to add highlighting of certain words or
* characters in the text flow before the text is displayed.
*
* <p>The three main methods that dispatch this event are <code>compose()</code>,
* <code>updateToController()</code>, and <code>updateAllControllers()</code>.
* All three of these methods are in the StandardFlowComposer class.</p>
*
* <p><strong>Note: </strong>If the event is dispatched by the
* <code>updateAllControllers()</code> method, do not call
* <code>updateAllControllers()</code> again in your event handler function.
* Such a call would be a recursive call because the <code>updateAllControllers()</code>
* method executes both the composition and display steps. The <code>updateAllControllers()</code>
* dispatches this event after composition completes, but before the display step executes.
* The same reasoning applies to the <code>updateToController()</code> method.
* </p>
*
* @includeExample examples\CompositionCompleteEvent_example.as -noswf
*
* @see flashx.textLayout.elements.TextFlow
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
public class CompositionCompleteEvent extends Event
{
/**
* Defines the value of the <code>type</code> property of a <code>compositionComplete</code> event object
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
public static const COMPOSITION_COMPLETE:String = "compositionComplete";
//temporary removal of params until Flex removes references to old CompositionCompletionEvent
private var _compositionStart:int;
private var _compositionLength:int;
private var _textFlow:TextFlow;
/** Constructor
* @param type event type - use the static property COMPOSITION_COMPLETE.
* @param bubbles Indicates whether an event is a bubbling event. This event does not bubble.
* @param cancelable Indicates whether the behavior associated with the event can be prevented.
* This event cannot be cancelled.
* @param textFlow The TextFlow which was composed
* @param compositionStart start of composition, in terms of an index into the text flow.
* @param compositionLength length number of characters composed
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
**/
public function CompositionCompleteEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, textFlow:TextFlow = null, compositionStart:int=0, compositionLength:int=0)
{
_compositionStart = compositionStart;
_compositionLength = compositionLength;
_textFlow = textFlow
super(type, bubbles, cancelable);
}
/** @private */
override public function clone():Event
{
return new CompositionCompleteEvent(type, bubbles, cancelable, textFlow, compositionStart, compositionLength);
}
/**
* The start location of the text range affected by the composition, expressed as an index into the text flow.
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
public function get compositionStart():int
{ return _compositionStart; }
public function set compositionStart(value:int):void
{ _compositionStart = value; }
/**
* The number of characters composed.
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
public function get compositionLength():int
{ return _compositionLength; }
public function set compositionLength(value:int):void
{ _compositionLength = value; }
/**
* TextFlow on which composition has been completed.
* @playerversion Flash 10
* @playerversion AIR 1.5
* @langversion 3.0
*/
public function get textFlow():TextFlow
{ return _textFlow; }
public function set textFlow(value:TextFlow):void
{ _textFlow = value; }
}
}