Selon mon arrangement vous voulez l'icône deux différente sur le secteur de statut, pour montrer le statut ouvert ou étroit, et vous voulez l'événement de clic seulement sur le ce des icônes pas sur la barre de titre complète.
J'ai ajouté peu de commentaires en code, pour votre usage, ou vous pouvez faire les corrections selon votre besoin. Espérer que ceci vous aidera à accomplir la condition.
Tellement voici le code
==============
TestApp.mxml - Mxml d'application
-------------------------------------------
init absolu de " creationComplete= " de " layout= " de http://www.adobe.com/2006/mxml () ; « xmlns : controls= " * " >
importation mx.core.UIComponent ;
[Enfoncer (source= " capitaux/images/logos/images.jpg ")]
[Bindable]
logo public de variété : Classe ;
[Enfoncer (source= " capitaux/images/logos/images1.jpg ")]
[Bindable]
logoClose public de variété : Classe ;
init privé de fonction () : vide
{
panel.statusIcon = logo ;
panel.statusIconClose = logoClose ;
}
]] >
>
-----------------------------------------
CollapsiblePanel.mxml - Composant fait sur commande
-----------------------------
creationComplete= " init du " height= " 300 " de " layout= " de http://www.adobe.com/2006/mxml " width= " absolu 400 () « >
importation mx.effects. Remettre à la côte ;
importer mx.controls. Image ;
variété privée isCollapsed : Booléen = faux ;
assignedHeight privé de variété : Nombre ;
_statusIcon privé de variété : Classe ;
_statusIconClose privé de variété : Classe
statusIconImg privé de variété : Image ;
variété privée isIconClicked : Booléen = faux ;
la variété privée remettent à la côte : Remettre à la côte = nouveau remettent à la côte (ceci) ;
const statique public TITLE_ICON_CLICK : Corde = « titleIconClick » ;
statusIconClose réglé de fonction publique (val : Classe) : vide
{
_statusIconClose = val ;
}
statusIcon réglé de fonction publique (val : Classe) : vide
{
_statusIcon = val ;
this.createChildren () ;
}
init privé de fonction () : vide
{
assignedHeight = taille ;
l'utilisation de // cet événement si vous voulez complet, titlebar d'agir pour l'effondrement/augmentent
//this.titleBar.addEventListener (MouseEvent.CLICK, titleClicked) ;
}
la fonction protégée par dépassement createChildren () : vide
{
super.createChildren () ;
addIcon () ;
}
addIcon privé de fonction () : vide
{
si (! _statusIcon de && de statusIconImg)
{
statusIconImg = nouvelle image () ;
// placent la largeur d'icône, taille ici ou la passent d'une méthode
statusIconImg.width = 30 ;
statusIconImg.height = 30 ;
statusIconImg.maintainAspectRatio = rectifient ;
titleBar.addChild (statusIconImg) ;
// ONU-commentent cet événement et événement la ligne 34, pour employer le clic complet de barre de titre, et commentent la ligne # 58
//statusIconImg.addEventListener (MouseEvent.CLICK, iconClicked) ;
// using ceci à agir seulement sur le clic d'icône, au lieu du clic titlebar complet, commentaire ceci si vous voulez ajouter cet événement sur titlebar complet
statusIconImg.addEventListener (MouseEvent.CLICK, titleClicked) ;
}
si (_statusIcon)
{
statusIconImg.source = _statusIcon ;
positionIcon () ;
}
}
positionIcon privé de fonction () : vide
{
statusIconImg.x = this.titleBar.width - statusIconImg.width - 10 ;
statusIconImg.y = (this.titleBar.height -) de statusIconImg.height/2 ;
}
fonction privée iconClicked (evt : MouseEvent) : vide
{
isIconClicked = rectifier ;
dispatchEvent (nouvel événement (CollapsiblePanel.TITLE_ICON_CLICK));
}
fonction privée titleClicked (evt : MouseEvent) : vide
{
si (resize.isPlaying)
{
// évitent si jouant
retour ;
}
si (isIconClicked)
{
isIconClicked = faux ;
retour ;
}
si (isCollapsed)
{
expandPanel () ;
}
autrement
{
collapsePanel () ;
}
}
collapsePanel public de fonction () : vide
{
assignedHeight = this.height ;
isCollapsed = rectifier ;
variété h : Nombre = 0 ;
si (titleBar)
{
h += titleBar.height ;
}
si (controlBar)
{
h += controlBar.height ;
}
this.height = h ;
statusIconImg.source = _statusIconClose ;
positionIcon () ;
}
expandPanel public de fonction () : vide
{
isCollapsed = faux ;
this.height = assignedHeight ;
statusIconImg.source = _statusIcon ;
positionIcon () ;
}
]] >
----------------------------------