Vanaf mijn begrip wilt u verschillend pictogram twee op statusgebied, open of dichte status tonen, en u wilt de klikgebeurtenis slechts over deze pictogrammen niet op volledige titelbar.
Ik heb weinig commentaren in code, voor uw gebruik toegevoegd, of u kunt de correcties vanaf uw behoefte maken. Hoop dit u zal helpen het vereiste voltooien.
Zo hier is de code
==============
TestApp.mxml - Toepassing mxml
http://www.adobe.com/2006/mxml " layout= " absolute " creationComplete= " init (); „ xmlns: controls= " * " >
de invoer mx.core.UIComponent;
[Bed (source= " activa/beelden/emblemen/images.jpg ") in]
[Bindable]
openbaar var embleem: Klasse;
[Bed (source= " activa/beelden/emblemen/images1.jpg ") in]
[Bindable]
openbare var logoClose: Klasse;
privé functie init (): leegte
{
panel.statusIcon = embleem;
panel.statusIconClose = logoClose;
}
]] >
>
CollapsiblePanel.mxml - de component van de Douane
http://www.adobe.com/2006/mxml " layout= " absolute " width= " 400 " height= " 300 " creationComplete= " init () „>
de invoer mx.effects. Resize;
voer mx.controls in. Beeld;
privé var isCollapsed: Van Boole = vals;
privé var assignedHeight: Aantal;
privé var _statusIcon: Klasse;
privé var _statusIconClose: Klasse
privé var statusIconImg: Beeld;
privé var isIconClicked: Van Boole = vals;
privé var resize: Resize = nieuw Resize (dit);
openbare statische const TITLE_ICON_CLICK: Koord = „titleIconClick“;
geplaatste overheidsfunctie statusIconClose (val: Klasse): leegte
{
_statusIconClose = val;
}
geplaatste overheidsfunctie statusIcon (val: Klasse): leegte
{
_statusIcon = val;
this.createChildren ();
}
privé functie init (): leegte
{
assignedHeight = hoogte;
// gebruikt deze gebeurtenis als u volledig wilt, titlebar om voor instorting te handelen/breid me uit
//this.titleBar.addEventListener (MouseEvent.CLICK, titleClicked);
}
createChildren de opheffing beschermde functie (): leegte
{
super.createChildren ();
addIcon ();
}
privé functie addIcon (): leegte
{
als (! statusIconImg && _statusIcon)
{
statusIconImg = nieuw Beeld ();
// plaatst hier pictogrambreedte, hoogte of gaat het van een methode over
statusIconImg.width = 30;
statusIconImg.height = 30;
statusIconImg.maintainAspectRatio = waar;
titleBar.addChild (statusIconImg);
// de V.N.-commentaar deze gebeurtenis en gebeurtenis online 34, om volledige titelbar te gebruiken klikt, en becommentari�ërt de lijn # 58
//statusIconImg.addEventListener (MouseEvent.CLICK, iconClicked);
// gebruikend dit om slechts op pictogram te handelen klikt, in plaats van volledige titlebar klik, becommentari�ër dit als u deze gebeurtenis wilt toevoegen over volledige titlebar
statusIconImg.addEventListener (MouseEvent.CLICK, titleClicked);
}
als (_statusIcon)
{
statusIconImg.source = _statusIcon;
positionIcon ();
}
}
privé functie positionIcon (): leegte
{
statusIconImg.x = this.titleBar.width - statusIconImg.width - 10;
statusIconImg.y = (this.titleBar.height - statusIconImg.height)/2;
}
de privé functie iconClicked (evt: MouseEvent): leegte
{
isIconClicked = waar;
dispatchEvent (nieuwe Gebeurtenis (CollapsiblePanel.TITLE_ICON_CLICK));
}
de privé functie titleClicked (evt: MouseEvent): leegte
{
als (resize.isPlaying)
{
// vermijdt als het spelen
terugkeer;
}
als (isIconClicked)
{
isIconClicked = vals;
terugkeer;
}
als (isCollapsed)
{
expandPanel ();
}
anders
{
collapsePanel ();
}
}
overheidsfunctie collapsePanel (): leegte
{
assignedHeight = this.height;
isCollapsed = waar;
var h: Aantal = 0;
als (titleBar)
{
h += titleBar.height;
}
als (controlBar)
{
h += controlBar.height;
}
this.height = h;
statusIconImg.source = _statusIconClose;
positionIcon ();
}
overheidsfunctie expandPanel (): leegte
{
isCollapsed = vals;
this.height = assignedHeight;
statusIconImg.source = _statusIcon;
positionIcon ();
}
]] >