The following example shows you how you can trigger effects when the visible property changes on a Flex container or control by using the hideEffect and showEffect effects.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/09/20/triggering-effects-when-a-containers-visibility-is-changed/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Zoom id="zoom" />

    <mx:ApplicationControlBar dock="true">
        <mx:Button label="hide"
                click="panel.visible = false;"
                enabled="{panel.visible}" />
        <mx:Button label="show"
                click="panel.visible = true;"
                enabled="{!panel.visible}" />
    </mx:ApplicationControlBar>

    <mx:Panel id="panel"
            title="title"
            status="status"
            showEffect="{zoom}"
            hideEffect="{zoom}"
            width="100%"
            height="100%">

        <mx:ControlBar>
            <mx:Label text="control bar" />
        </mx:ControlBar>
    </mx:Panel>

</mx:Application>

View source is enabled in the following example.

If you want to use a specific easing type (Back, Bounce, Elastic, etc), you can use the following snippet specify the easing function that will be applied to the animation:

<mx:Script>
    <![CDATA[
        import mx.effects.easing.Bounce;
    ]]>
</mx:Script>

<mx:Zoom id="zoom" easingFunction="Bounce.easeOut" />

View source is enabled in the following example.

 
Tagged with:
 
About The Author

Peter deHaan

Peter deHaan currently works for Adobe on the Flex SDK QA team. While not working on Flex, Flash, and ColdFusion applications, Peter enjoys making up bios and writing in 3rd person. Peter's rarely updated blog can be found at blogs.adobe.com/pdehaan/, actionscriptexamples.com, airexamples.com, and coldfusionexamples.com.

5 Responses to Triggering effects when a container’s visibility is changed

  1. Maycon says:

    Can i add a bounce effect on it?

  2. peterd says:

    Maycon,

    Yeah, I updated the entry above, but basically you can specify the easingFunction property in your <mx:Zoom /> tag (or whatever effect you’re using).

    Peter

  3. Kg says:

    Does anyone know how to get rid of that little flicker on the showEffect, where the target shows up for a millisecond BEFORE the effect starts?

  4. Atul Singh Parihar says:

    Really very usefully

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-Spam Protection by WP-SpamFree