Согласно моему вниканию вы хотите по-разному икону 2 на зоне состояния, для того чтобы показать открытое или близкое состояние, и вы хотите случай щелчка только на этом иконы не на вполне адвокатском сословии названия.
Я добавил немногие комментарии в Кодем, для вашей пользы, или вы можете сделать коррекции согласно вашей потребности. Понадейтесь что это поможет вам завершить требование.
Настолько здесь Кодий
==============
TestApp.mxml - Mxml применения
-------------------------------------------
init " creationComplete= " " layout= " http://www.adobe.com/2006/mxml совершенно (); « xmlns: controls= " * " >
ввоз mx.core.UIComponent;
[Врежьте (source= " имущества/изображения/логосы/images.jpg ")]
[Bindable]
общественный логос var: Тип;
[Врежьте (source= " имущества/изображения/логосы/images1.jpg ")]
[Bindable]
общественное logoClose var: Тип;
приватное init функции (): свободное пространство
{
panel.statusIcon = логос;
panel.statusIconClose = logoClose;
}
]] >
>
-----------------------------------------
CollapsiblePanel.mxml - Изготовленный на заказ компонент
-----------------------------
creationComplete= " init " height= " 300 " " layout= " http://www.adobe.com/2006/mxml совершенно " width= " 400 () «>
ввоз mx.effects. Измените размеры;
импортируйте mx.controls. Изображение;
приватный var isCollapsed: Булевско = ложно;
приватное assignedHeight var: Номер;
приватное _statusIcon var: Тип;
приватное _statusIconClose var: Тип
приватное statusIconImg var: Изображение;
приватный var isIconClicked: Булевско = ложно;
приватный var изменяет размеры: Измените размеры = ново измените размеры (это);
общественное статическое const TITLE_ICON_CLICK: Шнур = «titleIconClick»;
statusIconClose общественной функции установленное (val: Тип): свободное пространство
{
_statusIconClose = val;
}
statusIcon общественной функции установленное (val: Тип): свободное пространство
{
_statusIcon = val;
this.createChildren ();
}
приватное init функции (): свободное пространство
{
assignedHeight = высота;
польза // этот случай если вы хотите вполне, то, titlebar подействовать для сброса давления/расширяет
//this.titleBar.addEventListener (titleClicked MouseEvent.CLICK,);
}
функция защищенная преодолением автоматического действия createChildren (): свободное пространство
{
super.createChildren ();
addIcon ();
}
приватное addIcon функции (): свободное пространство
{
если (! _statusIcon && statusIconImg)
{
statusIconImg = новое изображение ();
// устанавливает ширину иконы, высоту здесь или проходит ее от метода
statusIconImg.width = 30;
statusIconImg.height = 30;
statusIconImg.maintainAspectRatio = true;
titleBar.addChild (statusIconImg);
// ООН-комментирует этот случай и случай он-лайн 34, использовать вполне щелчок адвокатского сословия названия, и комментирует линия # 58
//statusIconImg.addEventListener (iconClicked MouseEvent.CLICK,);
// using это, котор нужно подействовать только на щелчке иконы, вместо вполне titlebar щелчка, комментарий это если вы хотите добавить этот случай на вполне titlebar
statusIconImg.addEventListener (titleClicked MouseEvent.CLICK,);
}
если (_statusIcon), то
{
statusIconImg.source = _statusIcon;
positionIcon ();
}
}
приватное positionIcon функции (): свободное пространство
{
statusIconImg.x = this.titleBar.width - statusIconImg.width - 10;
statusIconImg.y = (this.titleBar.height -) statusIconImg.height/2;
}
приватная функция iconClicked (evt: MouseEvent): свободное пространство
{
isIconClicked = true;
dispatchEvent (новый случай (CollapsiblePanel.TITLE_ICON_CLICK));
}
приватная функция titleClicked (evt: MouseEvent): свободное пространство
{
если (resize.isPlaying), то
{
// избегает если играющ
возвращение;
}
если (isIconClicked), то
{
isIconClicked = ложно;
возвращение;
}
если (isCollapsed), то
{
expandPanel ();
}
еще
{
collapsePanel ();
}
}
общественное collapsePanel функции (): свободное пространство
{
assignedHeight = this.height;
isCollapsed = true;
var h: Номер = 0;
если (titleBar), то
{
h += titleBar.height;
}
если (controlBar), то
{
h += controlBar.height;
}
this.height = h;
statusIconImg.source = _statusIconClose;
positionIcon ();
}
общественное expandPanel функции (): свободное пространство
{
isCollapsed = ложно;
this.height = assignedHeight;
statusIconImg.source = _statusIcon;
positionIcon ();
}
]] >
----------------------------------