Cuestión : El panel de la flexión con el icono

Hola, el

Can que agregamos un icono en área del estado (en la esquina correcta) para el panel plegable de la flexión sin el cumplimiento del derrumbamiento/que ampliamos comportamiento y el acontecimiento del tecleo del envío a ese icono al cambio hace siempre abierto. ¿Si sí, cómo?

Regards,

class= del

Respuesta : El panel de la flexión con el icono

Según mi comprensión usted quiere diverso icono dos en área del estado, para demostrar estado abierto o cercano, y usted quiere el acontecimiento del tecleo solamente en este los iconos no en barra de título completa.

He agregado pocos comentarios en código, para su uso, o usted puede hacer las correcciones según su necesidad. Esperar que esto le ayude a terminar el requisito.

Tan aquí está el código
==============

TestApp.mxml - Mxml del uso
-------------------------------------------


init absoluto del " creationComplete= " del " layout= " de http://www.adobe.com/2006/mxml (); “ xmlns: controls= " * " >
      
                              importación mx.core.UIComponent;
                  
                  [Encajar (source= " activos/imágenes/insignias/images.jpg ")]
            [Bindable]
            insignia pública del var: Clase;
           
            [Encajar (source= " activos/imágenes/insignias/images1.jpg ")]
            [Bindable]
            logoClose público del var: Clase;
                  
                  init privado de la función (): vacío
                  {
                        panel.statusIcon = insignia;
                        panel.statusIconClose = logoClose;
                  }
            ]] >
      

      
            
      
>

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


CollapsiblePanel.mxml - Componente de encargo
-----------------------------

creationComplete= " init del " height= " 300 " del " layout= " de http://www.adobe.com/2006/mxml " width= absoluto " 400 () “>
      
                              importación mx.effects. Volver a clasificar según el tamaño;
                  importar mx.controls. Imagen;
                  
                  var privado isCollapsed: Boleano = falso;
                  assignedHeight privado del var: Número;
                  _statusIcon privado del var: Clase;
                  _statusIconClose privado del var: Clase
                  statusIconImg privado del var: Imagen;
                  
                  var privado isIconClicked: Boleano = falso;
                  el var privado vuelve a clasificar según el tamaño: Volver a clasificar según el tamaño = nuevo vuelven a clasificar según el tamaño (esto);
                  
                  const estático público TITLE_ICON_CLICK: Secuencia = “titleIconClick”;
                  
                  statusIconClose determinado de la función pública (val: Clase): vacío
                  {
                        _statusIconClose = val;
                  }
                  
                  statusIcon determinado de la función pública (val: Clase): vacío
                  {
                        _statusIcon = val;
                        this.createChildren ();
                  }
                  
                  init privado de la función (): vacío
                  {
                        assignedHeight = altura;
                        el uso de // este acontecimiento si usted quiere completo, titlebar de actuar para el derrumbamiento/se amplía
                        //this.titleBar.addEventListener (MouseEvent.CLICK, titleClicked);
                  }
                  
                  la función protegida invalidación createChildren (): vacío
                  {
                        super.createChildren ();
                        addIcon ();
                  }
                  
                  addIcon privado de la función (): vacío
                  {
                        ¡si (! _statusIcon del && del statusIconImg)
                        {
                              statusIconImg = nueva imagen ();
                              // fija la anchura del icono, altura aquí o la pasa de un método
                              statusIconImg.width = 30;
                              statusIconImg.height = 30;
                              statusIconImg.maintainAspectRatio = verdad;
                              titleBar.addChild (statusIconImg);
                              
                              // O.N.U-comenta este acontecimiento y acontecimiento respecto a la línea 34, utilizar tecleo completo de la barra de título, y comenta la línea # 58
                              //statusIconImg.addEventListener (MouseEvent.CLICK, iconClicked);
                              
                              // usar esto a actuar solamente en tecleo del icono, en vez de tecleo titlebar completo, comentario esto si usted quiere agregar este acontecimiento en titlebar completo
                              statusIconImg.addEventListener (MouseEvent.CLICK, titleClicked);
                        }
                        
                        si (_statusIcon)
                        {
                              statusIconImg.source = _statusIcon;
                              positionIcon ();
                        }
                  }
                  
                  positionIcon privado de la función (): vacío
                  {
                        statusIconImg.x = this.titleBar.width - statusIconImg.width - 10;
                        statusIconImg.y = (this.titleBar.height -)/2 de statusIconImg.height;
                  }
                  
                  función privada iconClicked (evt: MouseEvent): vacío
                  {
                        isIconClicked = verdad;
                        dispatchEvent (nuevo acontecimiento (CollapsiblePanel.TITLE_ICON_CLICK));
                  }
                  
                  función privada titleClicked (evt: MouseEvent): vacío
                  {
                        si (resize.isPlaying)
                        {
                              // evita si juega
                              vuelta;
                        }
                        si (isIconClicked)
                        {
                              isIconClicked = falso;
                              vuelta;
                        }
                        
                        si (isCollapsed)
                        {
                              expandPanel ();
                        }
                        
                        {
                              collapsePanel ();
                        }
                  }
                  
                  collapsePanel público de la función (): vacío
                  {
                        assignedHeight = this.height;
                        isCollapsed = verdad;
                        var h: Número = 0;
                        si (titleBar)
                        {
                              h += titleBar.height;
                        }
                        
                        si (controlBar)
                        {
                              h += controlBar.height;
                        }
                        this.height = h;
                        
                        statusIconImg.source = _statusIconClose;
                        positionIcon ();
                  }
                  
                  expandPanel público de la función (): vacío
                  {
                        isCollapsed = falso;
                        this.height = assignedHeight;
                        
                        statusIconImg.source = _statusIcon;
                        positionIcon ();
                  }
            ]] >
      


----------------------------------
Otras soluciones  
 
programming4us programming4us