Questione : Pannello della flessione con l'icona

Ciao, il

Can che aggiungiamo un'icona nella zona di condizione (sul giusto angolo) per il pannello pieghevole della flessione senza effettuare il crollo/che amplia il comportamento e l'evento di scatto della spedizione a quell'icona a cambiamento rende sempre aperto. Se sì, come?

Regards,

class= del

Risposta : Pannello della flessione con l'icona

Secondo la mia comprensione volete l'icona differente due su zona di condizione, per mostrare la condizione aperta o vicina e volete l'evento di scatto soltanto sul questo icone non sulla barra di titolo completa.

Ho aggiunto poche osservazioni nel codice, per il vostro uso, o potete apportare le rettifiche secondo il vostro bisogno. Sperare che questo lo aiuti a completare il requisito.

Così qui è il codice
==============

TestApp.mxml - Mxml di applicazione
-------------------------------------------


init assoluto " del creationComplete= " " del layout= " di http://www.adobe.com/2006/mxml (); “ xmlns: controls= " * " >
      
                              importazione mx.core.UIComponent;
                  
                  [Incastonare (source= " beni/immagini/marchi/images.jpg ")]
            [Bindable]
            marchio pubblico di varietà: Codice categoria;
           
            [Incastonare (source= " beni/immagini/marchi/images1.jpg ")]
            [Bindable]
            logoClose pubblico di varietà: Codice categoria;
                  
                  init riservato di funzione (): vuoto
                  {
                        panel.statusIcon = marchio;
                        panel.statusIconClose = logoClose;
                  }
            ]] >
      

      
            
      
>

-----------------------------------------


CollapsiblePanel.mxml - Componente su ordinazione
-----------------------------

creationComplete= " init " del height= " 300 " " del layout= " di http://www.adobe.com/2006/mxml " width= " assoluto 400 () “>
      
                              importazione mx.effects. Ridimensionare;
                  importare mx.controls. Immagine;
                  
                  varietà riservata isCollapsed: Booleano = falso;
                  assignedHeight riservato di varietà: Numero;
                  _statusIcon riservato di varietà: Codice categoria;
                  _statusIconClose riservato di varietà: Codice categoria
                  statusIconImg riservato di varietà: Immagine;
                  
                  varietà riservata isIconClicked: Booleano = falso;
                  la varietà riservata ridimensiona: Ridimensionare = nuovo ridimensionano (questo);
                  
                  const statico pubblico TITLE_ICON_CLICK: Stringa = “titleIconClick„;
                  
                  statusIconClose stabilito di funzione pubblica (val: Codice categoria): vuoto
                  {
                        _statusIconClose = val;
                  }
                  
                  statusIcon stabilito di funzione pubblica (val: Codice categoria): vuoto
                  {
                        _statusIcon = val;
                        this.createChildren ();
                  }
                  
                  init riservato di funzione (): vuoto
                  {
                        assignedHeight = altezza;
                        l'uso di // questo evento se volete completo, titlebar comportarsi per il crollo/si espande
                        //this.titleBar.addEventListener (MouseEvent.CLICK, titleClicked);
                  }
                  
                  la funzione protettiva provvigione supplementare createChildren (): vuoto
                  {
                        super.createChildren ();
                        addIcon ();
                  }
                  
                  addIcon riservato di funzione (): vuoto
                  {
                        se (! _statusIcon del && dello statusIconImg)
                        {
                              statusIconImg = nuova immagine ();
                              // fissa la larghezza dell'icona, altezza qui o la passa da un metodo
                              statusIconImg.width = 30;
                              statusIconImg.height = 30;
                              statusIconImg.maintainAspectRatio = allineano;
                              titleBar.addChild (statusIconImg);
                              
                              // ONU-commenta questo evento ed evento la linea 34, usare lo scatto completo della barra di titolo e commenta la linea # 58
                              //statusIconImg.addEventListener (MouseEvent.CLICK, iconClicked);
                              
                              // using questo da comportarsi soltanto sullo scatto dell'icona, anziché lo scatto titlebar completo, commento questo se volete aggiungere questo evento su titlebar completo
                              statusIconImg.addEventListener (MouseEvent.CLICK, titleClicked);
                        }
                        
                        se (_statusIcon)
                        {
                              statusIconImg.source = _statusIcon;
                              positionIcon ();
                        }
                  }
                  
                  positionIcon riservato di funzione (): vuoto
                  {
                        statusIconImg.x = this.titleBar.width - statusIconImg.width - 10;
                        statusIconImg.y = (this.titleBar.height -)/2 di statusIconImg.height;
                  }
                  
                  funzione riservata iconClicked (evt: MouseEvent): vuoto
                  {
                        isIconClicked = allineare;
                        dispatchEvent (nuovo evento (CollapsiblePanel.TITLE_ICON_CLICK));
                  }
                  
                  funzione riservata titleClicked (evt: MouseEvent): vuoto
                  {
                        se (resize.isPlaying)
                        {
                              // evita se giocando
                              ritorno;
                        }
                        se (isIconClicked)
                        {
                              isIconClicked = falso;
                              ritorno;
                        }
                        
                        se (isCollapsed)
                        {
                              expandPanel ();
                        }
                        altrimenti
                        {
                              collapsePanel ();
                        }
                  }
                  
                  collapsePanel pubblico di funzione (): vuoto
                  {
                        assignedHeight = this.height;
                        isCollapsed = allineare;
                        varietà h: Numero = 0;
                        se (titleBar)
                        {
                              h += titleBar.height;
                        }
                        
                        se (controlBar)
                        {
                              h += controlBar.height;
                        }
                        this.height = h;
                        
                        statusIconImg.source = _statusIconClose;
                        positionIcon ();
                  }
                  
                  expandPanel pubblico di funzione (): vuoto
                  {
                        isCollapsed = falso;
                        this.height = assignedHeight;
                        
                        statusIconImg.source = _statusIcon;
                        positionIcon ();
                  }
            ]] >
      


----------------------------------
Altre soluzioni  
 
programming4us programming4us