//////////////////////////////////////////////////////////////////////////////// // // 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.
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
.
*
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.
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
.
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.
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.
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.
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; } }