Na mój zrozumienie ty chcieć dwa różny ikona na status teren, otwarty lub zamknięty status, i ty chcieć the stuknięcie wydarzenie tylko na ten ikona nie na zupełny tytułowy bar.
I dodawać potrzeba komentarz w kod, dla twój use, lub ty móc the korekcja na twój potrzeba. Mieć Nadzieję wymaganie pomagać ty the wymaganie.
W Ten Sposób tutaj być the kod
==============
TestApp.mxml - Podaniowy mxml
-------------------------------------------
http://www.adobe.com/2006/mxml " layout= " absolutny " creationComplete= " init (); " xmlns: controls= " * " >
importowy mx.core.UIComponent;
[Osadzać (source= " wartość/wizerunek/logo/images.jpg ")]
[Bindable]
jawny var logo: Klasa;
[Osadzać (source= " wartość/wizerunek/logo/images1.jpg ")]
[Bindable]
jawny var logoClose: Klasa;
intymny funkcja init (): pustka
{
panel.statusIcon = logo;
panel.statusIconClose = logoClose;
}
]] >
>
-----------------------------------------
CollapsiblePanel.mxml - Obyczajowy składnik
-----------------------------
http://www.adobe.com/2006/mxml " layout= " absolutny " width= " 400 " height= " 300 " creationComplete= " init () ">
importowy mx.effects. Resize;
importować mx.controls. Wizerunek;
intymny var isCollapsed: Boolowski = fałszywy;
intymny var assignedHeight: Liczba;
intymny var _statusIcon: Klasa;
intymny var _statusIconClose: Klasa
intymny var statusIconImg: Wizerunek;
intymny var isIconClicked: Boolowski = fałszywy;
intymny var resize: Resize = nowy Resize (to);
jawny statyczny const TITLE_ICON_CLICK: Sznurek = "titleIconClick";
jawny funkcja ustalony statusIconClose (val: Klasa): pustka
{
_statusIconClose = val;
}
jawny funkcja ustalony statusIcon (val: Klasa): pustka
{
_statusIcon = val;
this.createChildren ();
}
intymny funkcja init (): pustka
{
assignedHeight = wzrost;
// use ten wydarzenie jeżeli ty chcieć zupełny, titlebar dla zawalenie się/rozszerzać
//this.titleBar.addEventListener (MouseEvent.CLICK, titleClicked);
}
override ochraniać funkcja createChildren (): pustka
{
super.createChildren ();
addIcon ();
}
intymny funkcja addIcon (): pustka
{
jeżeli (! statusIconImg && _statusIcon)
{
statusIconImg = nowy Wizerunek ();
// ustawiać ikona szerokość, wzrost tutaj lub przechodzić ono od metoda
statusIconImg.width = 30;
statusIconImg.height = 30;
statusIconImg.maintainAspectRatio = true;
titleBar.addChild (statusIconImg);
// UN-komentować ten wydarzenie i wydarzenie online 34, zupełny tytułowy bar stuknięcie, i komentować the kreskowy # 58
//statusIconImg.addEventListener (MouseEvent.CLICK, iconClicked);
// using wydarzenie tylko na ikona stuknięcie, zamiast zupełny titlebar stuknięcie, komentarz postępować jeżeli ty chcieć ten wydarzenie na zupełny titlebar
statusIconImg.addEventListener (MouseEvent.CLICK, titleClicked);
}
jeżeli (_statusIcon)
{
statusIconImg.source = _statusIcon;
positionIcon ();
}
}
intymny funkcja positionIcon (): pustka
{
statusIconImg.x = this.titleBar.width - statusIconImg.width - 10;
statusIconImg.y = (this.titleBar.height - statusIconImg.height)/2;
}
intymny funkcja iconClicked (evt: MouseEvent): pustka
{
isIconClicked = true;
dispatchEvent (nowy Wydarzenie (CollapsiblePanel.TITLE_ICON_CLICK));
}
intymny funkcja titleClicked (evt: MouseEvent): pustka
{
jeżeli (resize.isPlaying)
{
// unikać jeżeli bawić się
powrót;
}
jeżeli (isIconClicked)
{
isIconClicked = fałszywy;
powrót;
}
jeżeli (isCollapsed)
{
expandPanel ();
}
inny
{
collapsePanel ();
}
}
jawny funkcja collapsePanel (): pustka
{
assignedHeight = this.height;
isCollapsed = true;
var h: Liczba = (0);
jeżeli (titleBar)
{
h += titleBar.height;
}
jeżeli (controlBar)
{
h += controlBar.height;
}
this.height = h;
statusIconImg.source = _statusIconClose;
positionIcon ();
}
jawny funkcja expandPanel (): pustka
{
isCollapsed = fałszywy;
this.height = assignedHeight;
statusIconImg.source = _statusIcon;
positionIcon ();
}
]] >
----------------------------------