Paket | spark.effects |
Klass | public class AnimateTransitionShader |
Arv | AnimateTransitionShader Animate Effect EventDispatcher Object |
Underklasser | CrossFade, Wipe |
Språkversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
The AnimateTransitionShader effect uses Pixel Bender, which is not supported for AIR mobile applications. |
The AnimateTransitionShader effect animates a transition between two bitmaps, one representing the start state (
bitmapFrom
), and
the other representing the end state (bitmapTo
).
The animation is performed by running a pixel-shader program,
specified by the shader
property,
using the two bitmaps as input.
The bitmaps are represented by an instance of the flash.display.BitmapData class.
You can create your own pixel-shader program
by using Adobe Pixel Bender Toolkit.
If either bitmap is not supplied, that value is determined dynamically from either the appropriate state of the target in a transition or, if the effect is not running in a transition, from the target directly. If the effect is run in a transition and the target object either goes away or comes into existence during that state change, then a fully-transparent bitmap is used to represent that object when it does not exist.
This effect can only be run on targets that are either UIComponents or GraphicElements, since capturing the bitmap of the object requires information about the object that only exists in these classes.
Because the effect is bitmap-based, and the underlying pixel-shader program expects both bitmaps to be the same size, the effect only works correctly when both bitmaps are of the same size. This means that if the target object changes size or changes orientation leading to a different size bounding box, then the effect might not play correctly.
This effect and its subclasses differ from other effects in Flex in that they are intended to work on their own, and may not have the intended result when run in parallel with other effects. This constraint comes from the fact that both of the before and after bitmaps are captured before the start of the effect. So if something happens to the target object after these bitmaps are calculated, such as another effect changing the target's properties, then those changes are not be accounted for in the pre-calculated bitmap and the results might not be as expected. To ensure correct playing of these bitmap-based effects, they should be played alone on their target objects.
MXML-syntaxDölj MXML-syntaxThe <s:AnimateTransitionShader>
tag
inherits all of the tag attributes of its superclass,
and adds the following tag attributes:
<s:AnimateTransitionShader Properties id="ID" bitmapFrom="no default" bitmapTo="no default" shaderByteCode="no default" sahderProperties="no default" />
MXML-standardegenskapmotionPaths
Relaterade API-element
spark.effects.supportClasses.AnimateTransitionShaderInstance
spark.primitives.supportClasses.GraphicElement
Egenskap | Definieras med | ||
---|---|---|---|
bitmapFrom : BitmapData
The bitmap data representing the start state of this effect. | AnimateTransitionShader | ||
bitmapTo : BitmapData
The bitmap data representing the end state of this effect. | AnimateTransitionShader | ||
className : String [skrivskyddad]
The name of the effect class, such as "Fade". | Effect | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
customFilter : mx.effects:EffectTargetFilter
Specifies a custom filter object, of type EffectTargetFilter,
used by the effect to determine the targets
on which to play the effect. | Effect | ||
disableLayout : Boolean
If true, the effect disables layout on its
targets' parent containers, setting the containers autoLayout
property to false, and also disables any layout constraints on the
target objects. | Animate | ||
duration : Number
Duration of the effect in milliseconds. | Effect | ||
easer : IEaser
The easing behavior for this effect. | Animate | ||
effectTargetHost : mx.effects:IEffectTargetHost
A property that lets you access the target list-based control
of a data effect. | Effect | ||
filter : String
Specifies an algorithm for filtering targets for an effect. | Effect | ||
hideFocusRing : Boolean
Determines whether the effect should hide the focus ring
when starting the effect. | Effect | ||
instanceClass : Class
An object of type Class that specifies the effect
instance class class for this effect class. | Effect | ||
interpolator : IInterpolator
The interpolator used by this effect to calculate values between
the start and end values of a property. | Animate | ||
isPlaying : Boolean [skrivskyddad]
A read-only flag which is true if any instances of the effect
are currently playing, and false if none are. | Effect | ||
motionPaths : Vector.<MotionPath>
A Vector of MotionPath objects, each of which holds the
name of a property being animated and the values that the property
takes during the animation. | Animate | ||
perElementOffset : Number
Additional delay, in milliseconds, for effect targets
after the first target of the effect. | Effect | ||
playheadTime : Number
Current time position of the effect. | Effect | ||
relevantProperties : Array
An Array of property names to use when performing filtering. | Effect | ||
relevantStyles : Array
An Array of style names to use when performing filtering. | Effect | ||
repeatBehavior : String
The behavior of a repeating effect, which means an effect
with repeatCount equal to either 0 or > 1. | Animate | ||
repeatCount : int = 1
Number of times to repeat the effect. | Effect | ||
repeatDelay : int = 0
Amount of time, in milliseconds, to wait before repeating the effect. | Effect | ||
shaderByteCode : Object
The bytecode for the pixel-shader program that the effect uses
to animate between the two bitmaps. | AnimateTransitionShader | ||
shaderProperties : Object
A map of parameter name/value pairs passed to the pixel-shader program
before playing. | AnimateTransitionShader | ||
startDelay : int = 0
Amount of time, in milliseconds, to wait before starting the effect. | Effect | ||
target : Object
The object to which this effect is applied. | Effect | ||
targets : Array
An Array of objects that are targets for the effect. | Effect | ||
triggerEvent : Event
The Event object passed to this Effect
by the EffectManager when an effect is triggered,
or null if the effect is not being
played by the EffectManager. | Effect |
Metod | Definieras med | ||
---|---|---|---|
AnimateTransitionShader(target:Object = null)
Constructor. | AnimateTransitionShader | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Captures the current values of the relevant properties
on the effect's targets and saves them as end values. | Effect | ||
Captures the current values of the relevant properties
of an additional set of targets
Flex uses this function when a data change
effect is run.
| Effect | ||
Captures the current values of the relevant properties
on the effect's targets. | Effect | ||
Creates a single effect instance and initializes it. | Effect | ||
Takes an Array of target objects and invokes the
createInstance() method on each target. | Effect | ||
Removes event listeners from an instance
and removes it from the list of instances. | Effect | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Interrupts an effect that is currently playing,
and jumps immediately to the end of the effect. | Effect | ||
Returns an Array of Strings, where each String is the name
of a property changed by this effect. | Effect | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Pauses the effect until you call the resume() method. | Effect | ||
Begins playing the effect. | Effect | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
Resumes the effect after it has been paused
by a call to the pause() method. | Effect | ||
Plays the effect in reverse, if the effect is currently playing,
starting from the current position of the effect. | Effect | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Stops the effect, leaving the effect targets in their current state. | Effect | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
bitmapFrom | egenskap |
public var bitmapFrom:BitmapData
Språkversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
The bitmap data representing the start state of this effect. If this property is not set, it is calculated automatically when the effect is played by taking a snapshot of the target object, or by using a transparent bitmap if the object does not exist in the start view state of a transition.
bitmapTo | egenskap |
public var bitmapTo:BitmapData
Språkversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
The bitmap data representing the end state of this effect. If this property is not set, it is calculated automatically when the effect is played by taking a snapshot of the target object, or by using a transparent bitmap if the object does not exist in the end view state of a transition.
shaderByteCode | egenskap |
public var shaderByteCode:Object
Språkversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
The bytecode for the pixel-shader program that the effect uses to animate between the two bitmaps. This property can be represented as either a ByteArray or as a Class representing a ByteArray (which is what results when you embed a resource).
The pixel-shader program can have arbitrary functionality and inputs, but
must, at a minimum, have three image4
inputs.
The first input, which can be named anything, should go
unused by your pixel-shader program code - it exists only to satisfy the
Flash requirement of assigning a filtered object to the
first input. Note that inputs that go completely unused in a
pixel-shader program might be optimized out, so your code should
at least reference this input once.
There must be at least two other input bitmaps
named from
and to
which represent the before and after bitmap images.
Finally, you must define one
float
parameter named progress
that contains the elapsed fraction of the effect.
You can specify two optional parameters, width
and height
. If they exist, they
are automatically set to the width and height of the
effect target.
See the Pixel Bender Toolkit documentation for more information on writing pixel-shader programs for Flash. You can also look at the source code for the CrossFade.pbk file in the frameworks\projects\flex4\src\spark\effects directory of the Flex source code.
shaderProperties | egenskap |
public var shaderProperties:Object
Språkversion: | ActionScript 3.0 |
Produktversion: | Flex 4 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
A map of parameter name/value pairs passed to the pixel-shader program
before playing. For example,
to set a parameter named direction
in a
shader with a Pixel Bender pbj file in Wipe.pbj, the calling
code could do the following:
[Embed(source="Wipe.pbj", mimeType="application/octet-stream")] private var WipeCodeClass:Class; var shaderEffect = new AnimateTransitionShader(); shaderEffect.shaderByteCode = WipeCodeClass; shaderEffect.shaderProperties = {direction : 1};
AnimateTransitionShader | () | Konstruktor |
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark"> <s:states> <s:State name="default"/> <s:State name="flipped"/> </s:states> <s:transitions> <s:Transition id="t1"> <s:AnimateTransitionShader target="{holder}" duration="1000" shaderByteCode="@Embed(source='assets/twist.pbj', mimeType='application/octet-stream')"/> </s:Transition> </s:transitions> <s:Panel title="AnimateTransitionShader Example" width="75%" height="75%" horizontalCenter="0" verticalCenter="0"> <s:HGroup width="100%" height="100%" top="5" left="5" right="5"> <s:Group id="holder"> <s:BitmapImage source="@Embed('assets/back2.png')" visible="true" visible.flipped="false"/> <s:BitmapImage source="@Embed('assets/c2.png')" visible="false" visible.flipped="true"/> </s:Group> <!-- Directions --> <s:VGroup id="detailsBox" width="50%" left="0"> <s:Label width="99%" color="blue" text="AnimateShaderTransition animates a shader between two images. Click the 'Animate Shader' button to see the effect."/> </s:VGroup> </s:HGroup> <s:Rect left="0" right="0" bottom="0" height="30"> <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0xE2E2E2" /> <s:GradientEntry color="0xD9D9D9" /> </s:LinearGradient> </s:fill> </s:Rect> <s:Button id="playButton" left="5" bottom="5" label="Animate Shader" click="currentState = (currentState == 'flipped') ? 'default' : 'flipped';"/> </s:Panel> </s:Application>
Tue Jun 12 2018, 01:40 PM Z