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 ();
}
]] >
----------------------------------