Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

4fév/093

Composant Flex – CollapsibleAccordion, l'Accordion vertical et rotatif avec transitions

Voici un composant qui est assez difficile à expliquer car assez original dans sa réalisation. Ce composant se présente comme un composant Flex Accordion sauf qu'au lieu que les différentes parties soient empilées de manière horizontale, les uns au dessus des autres, les headers sont présentés avec une rotation de 90°. Alors comment le contenu est-il affiché?

Et bien une fois que vous sélectionnez votre partie de l'accordéon, celle-ci va pivoter (l'ensemble des autres headers pivotent aussi) pour arriver à une position classique. Un bouton sous forme de flèche est ensuite disponible pour remettre l'Accordion comme il l'était au départ.

accordion flex comp

Ce composant est intéressant car il permet d'avoir un look assez original tout en gardant de la place lorsque l'Accordion est refermé. Les transitions entre les états ouverts et fermés sont aussi bien réalisés et donneront du style à votre application.

Mais je vais vous laissez vous faire une idée sur ce composant Flex …

Voir un exemple d'application utilisant le CollapsibleAccordion

Voir la page officielle sur le blog de l'auteur

Télécharger le code source du CollapsibleAccordion

Articles similaires

Commentaires (3) Trackbacks (0)
  1. Thank you very much for this cool flex.
    I found a problem when double click too fast in one Collapsible accordion.
    I can’t fix this.
    Have you got any idea to fix that problem?
    Thank you very much.

  2. I can't really help you, i'm not the author of the component. Try going on the author's page and leaving a comment :)
    http://www.flexsamples.com/blog/2009/02/collapsibleaccordion-cool-new-flex-component/

    Fabien

  3. The solution to this issue basically consists in don't allow the user to make a double click:

    1. Try adding the following property to the CollapsibleAccordion.as class:

    private var lastClickTime:Date = new Date(0);

    2. Modify the method that is called when user clicks on a panel:

    private function onButtonClick (event:MouseEvent):void {
    if ((new Date()).time – lastClickTime.time < 700) {
    return;
    }
    lastClickTime = new Date();

    accordion.selectedChild = ((event.currentTarget as Button).data as Container);
    close = !close;
    dispatchEvent(new Event("openDrawerBegin"));
    }

    I hope this could be helpful for somebody else.


Leave a comment

(required)

Aucun trackbacks pour l'instant