Como por minha compreensão você quer o ícone dois diferente na área do status, mostrar o status aberto ou próximo, e você quer o evento do clique somente no este ícones não na barra de título completa.
Eu adicionei poucos comentários no código, para seu uso, ou você pode fazer as correções como por sua necessidade. Esperar que isto o ajudará a terminar a exigência.
Está tão aqui o código
==============
TestApp.mxml - Mxml da aplicação
-------------------------------------------
init absoluto do " creationComplete= " do " layout= " de http://www.adobe.com/2006/mxml (); “ xmlns: controls= " * " >
importação mx.core.UIComponent;
[Encaixar (source= " recursos/imagens/logotipos/images.jpg ")]
[Bindable]
logotipo público do var: Classe;
[Encaixar (source= " recursos/imagens/logotipos/images1.jpg ")]
[Bindable]
logoClose público do var: Classe;
init confidencial da função (): vácuo
{
panel.statusIcon = logotipo;
panel.statusIconClose = logoClose;
}
]] >
>
-----------------------------------------
CollapsiblePanel.mxml - Componente feito sob encomenda
-----------------------------
creationComplete= " init do " height= " 300 " do " layout= " de http://www.adobe.com/2006/mxml " width= absoluto " 400 () “>
importação mx.effects. Resize;
importar mx.controls. Imagem;
var confidencial isCollapsed: Bôoleano = falso;
assignedHeight confidencial do var: Número;
_statusIcon confidencial do var: Classe;
_statusIconClose confidencial do var: Classe
statusIconImg confidencial do var: Imagem;
var confidencial isIconClicked: Bôoleano = falso;
o var confidencial resize: Resize = novo Resize (isto);
const de estática público TITLE_ICON_CLICK: Corda = “titleIconClick”;
statusIconClose ajustado da função pública (val: Classe): vácuo
{
_statusIconClose = val;
}
statusIcon ajustado da função pública (val: Classe): vácuo
{
_statusIcon = val;
this.createChildren ();
}
init confidencial da função (): vácuo
{
assignedHeight = altura;
o uso de // este evento se você quer completo, titlebar actuar para o colapso/expande
//this.titleBar.addEventListener (MouseEvent.CLICK, titleClicked);
}
a função protegida ultrapassagem createChildren (): vácuo
{
super.createChildren ();
addIcon ();
}
addIcon confidencial da função (): vácuo
{
se (! _statusIcon do && do statusIconImg)
{
statusIconImg = imagem nova ();
// ajusta a largura do ícone, altura aqui ou passa-a de um método
statusIconImg.width = 30;
statusIconImg.height = 30;
statusIconImg.maintainAspectRatio = retificam;
titleBar.addChild (statusIconImg);
// un-comenta este evento e evento na linha 34, para usar o clique completo da barra de título, e comenta a linha # 58
//statusIconImg.addEventListener (MouseEvent.CLICK, iconClicked);
// using isto a actuar somente no clique do ícone, em vez do clique titlebar completo, comentário isto se você quer adicionar este evento em titlebar completo
statusIconImg.addEventListener (MouseEvent.CLICK, titleClicked);
}
se (_statusIcon)
{
statusIconImg.source = _statusIcon;
positionIcon ();
}
}
positionIcon confidencial da função (): vácuo
{
statusIconImg.x = this.titleBar.width - statusIconImg.width - 10;
statusIconImg.y = (this.titleBar.height -) de statusIconImg.height/2;
}
função confidencial iconClicked (evt: MouseEvent): vácuo
{
isIconClicked = retificar;
dispatchEvent (evento novo (CollapsiblePanel.TITLE_ICON_CLICK));
}
função confidencial titleClicked (evt: MouseEvent): vácuo
{
se (resize.isPlaying)
{
// evita se jogando
retorno;
}
se (isIconClicked)
{
isIconClicked = falso;
retorno;
}
se (isCollapsed)
{
expandPanel ();
}
mais
{
collapsePanel ();
}
}
collapsePanel público da função (): vácuo
{
assignedHeight = this.height;
isCollapsed = retificar;
var h: Número = 0;
se (titleBar)
{
h += titleBar.height;
}
se (controlBar)
{
h += controlBar.height;
}
this.height = h;
statusIconImg.source = _statusIconClose;
positionIcon ();
}
expandPanel público da função (): vácuo
{
isCollapsed = falso;
this.height = assignedHeight;
statusIconImg.source = _statusIcon;
positionIcon ();
}
]] >
----------------------------------