//////////////////////////////////////////////////////////////////////////////// // // 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 mx.effects { import flash.events.Event; import mx.effects.effectClasses.PropertyChanges; /** * The IEffectInstance interface represents an instance of an effect * playing on a target. * Each target has a separate effect instance associated with it. * An effect instance's lifetime is transitory. * An instance is created when the effect is played on a target * and is destroyed when the effect has finished playing. * If there are multiple effects playing on a target at the same time * (for example, a Parallel effect), there is a separate effect instance * for each effect. * *

Effect developers must create an instance class * for their custom effects.

* * @see mx.effects.Effect * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public interface IEffectInstance { //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // className //---------------------------------- /** * The name of the effect class, such as "FadeInstance". * *

This is a short or "unqualified" class name * that does not include the package name. * If you need the qualified name, use the * getQualifiedClassName() method * in the flash.utils package.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get className():String; //---------------------------------- // duration //---------------------------------- /** * The duration of the effect, in milliseconds. * * @default 500 * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get duration():Number; /** * @private */ function set duration(value:Number):void; //---------------------------------- // effect //---------------------------------- /** * The IEffect object that created this IEffectInstance object. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get effect():IEffect; /** * @private */ function set effect(value:IEffect):void; //---------------------------------- // effectTargetHost //---------------------------------- /** * A property that lets you access the target * list-based control of a data effect. * This property enables an instance of an effect class * to communicate with the list-based control * on which the effect is playing. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get effectTargetHost():IEffectTargetHost; /** * @private */ function set effectTargetHost(value:IEffectTargetHost):void; //---------------------------------- // hideFocusRing //---------------------------------- /** * Determines whether the effect should hide * the focus ring when starting the effect. * The effect target is responsible for the hiding the focus ring. * Subclasses of the UIComponent class hide the focus ring automatically. * If the effect target is not a subclass of the UIComponent class, * you must add functionality to it to hide the focus ring. * *

Set this property to true * to hide the focus ring during the effect.

* *

For subclasses of Effect, the default value is false. * For subclasses of MaskEffect, the default value is true. *

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get hideFocusRing():Boolean; /** * @private */ function set hideFocusRing(value:Boolean):void; //---------------------------------- // playheadTime //---------------------------------- /** * Current time position of the effect. * This property has a value between 0 and the total duration, * which includes the Effect's startDelay, * repeatCount, and repeatDelay. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get playheadTime():Number; /** * @private */ function set playheadTime(value:Number):void; //---------------------------------- // propertyChanges //---------------------------------- /** * Specifies the PropertyChanges object containing * the start and end values for the set of properties * relevant to the effect's targets. * This property is only set if the * captureStartValues() method was called * on the effect that created this effect instance. * *

You often use the propertyChanges property * to create an effect that is used as part of a transition. * Flex automatically calls the captureStartValues() * method when it starts a transition. * Within your override of the Effectinstance.play() * method, you can examine the information within the * propertyChanges() method to initialize * the start and end values of the effect.

* * @see mx.effects.effectClasses.PropertyChanges * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get propertyChanges():PropertyChanges; /** * @private */ function set propertyChanges(value:PropertyChanges):void; //---------------------------------- // repeatCount //---------------------------------- /** * Number of times to repeat the effect. * Possible values are any integer greater than or equal to 0. * * @default 1 * @see mx.effects.Effect#repeatCount * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get repeatCount():int; /** * @private */ function set repeatCount(value:int):void; //---------------------------------- // repeatDelay //---------------------------------- /** * Amount of time, in milliseconds, * to wait before repeating the effect. * * @default 0 * @see mx.effects.Effect#repeatDelay * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get repeatDelay():int; /** * @private */ function set repeatDelay(value:int):void; //---------------------------------- // startDelay //---------------------------------- /** * Amount of time, in milliseconds, * to wait before starting the effect. * Possible values are any int greater than or equal to 0. * If the effect is repeated by using the repeatCount * property, the startDelay property is applied * only the first time the effect is played. * * @default 0 * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get startDelay():int; /** * @private */ function set startDelay(value:int):void; //---------------------------------- // suspendBackgroundProcessing //---------------------------------- /** * If true, blocks all background processing * while the effect is playing. * Background processing includes measurement, layout, * and processing responses that have arrived from the server. * * @default false * @see mx.effects.Effect#suspendBackgroundProcessing * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get suspendBackgroundProcessing():Boolean; /** * @private */ function set suspendBackgroundProcessing(value:Boolean):void; //---------------------------------- // target //---------------------------------- /** * The UIComponent object to which this effect is applied. * * @see mx.effects.Effect#target * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get target():Object; /** * @private */ function set target(value:Object):void; //---------------------------------- // triggerEvent //---------------------------------- /** * The event, if any, which triggered the playing of the effect. * This property is useful when an effect is assigned to * multiple triggering events. * *

If the effect was played programmatically by a call to the * play() method, rather than being triggered by an event, * this property is null.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get triggerEvent():Event; /** * @private */ function set triggerEvent(value:Event):void; //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- /** * This method is called if the effect was triggered by the EffectManager. * This base class version saves the event that triggered the effect * in the triggerEvent property. * Each subclass should override this method. * * @param event The Event object that was dispatched * to trigger the effect. * For example, if the trigger was a mouseDownEffect, the event * would be a MouseEvent with type equal to MouseEvent.MOUSEDOWN. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function initEffect(event:Event):void; /** * Plays the effect instance on the target after the * startDelay period has elapsed. * Called by the Effect class. * Use this function instead of the play() method * when starting an EffectInstance. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function startEffect():void; /** * Plays the effect instance on the target. * Call the startEffect() method instead * to make an effect start playing on an EffectInstance. * *

In a subclass of EffectInstance, you must override this method. * The override must call the super.play() method * so that an effectStart event is dispatched * from the target.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function play():void; /** * Pauses the effect until you call the resume() method. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function pause():void; /** * Stops the effect, leaving the target in its current state. * This method is invoked by a call * to the Effect.stop() method. * As part of its implementation, it calls * the finishEffect() method. * *

The effect instance dispatches an effectEnd event * when you call this method as part of ending the effect.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function stop():void; /** * Resumes the effect after it has been paused * by a call to the pause() method. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function resume():void; /** * Plays the effect in reverse, starting from * the current position of the effect. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function reverse():void; /** * Interrupts an effect instance that is currently playing, * and jumps immediately to the end of the effect. * This method is invoked by a call * to the Effect.end() method. * As part of its implementation, it calls * the finishEffect() method. * *

The effect instance dispatches an effectEnd event * when you call this method as part of ending the effect.

* *

In a subclass of EffectInstance, * you can optionally override this method * As part of your override, you should call * the super.end() method * from the end of your override, after your logic.

* * @see mx.effects.Effect#end() * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function end():void; /** * Called by the end() method when the effect * finishes playing. * This function dispatches an endEffect event * for the effect target. * *

You do not have to override this method in a subclass. * You do not need to call this method when using effects, * but you may need to call it if you create an effect subclass.

* * @see mx.events.EffectEvent * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function finishEffect():void; /** * Called after each iteration of a repeated effect finishes playing. * *

You do not have to override this method in a subclass. * You do not need to call this method when using effects.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function finishRepeat():void; } }