2013-01-10 3 views
0

У меня есть кнопка с искровым подкласс с настраиваемой skinclass, определяется следующим образом:Как получить уведомление, если кожа изменена на кнопку искрового

<s:Button xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     skinClass="com.company.NvrControlButtonSkin" 
     enabled="false"> 

У меня тогда в сценарной части этой кнопки подкласса сеттера для object, где я регистрирую прослушиватель свойств на этом объекте. В слушателе мне нужно установить свойство на самом скине. Однако бывает, что объект, возвращенный свойством skin, еще не является типом I, установленным на skinClass. Я предполагаю, что мой собеседник уже вызван до того, как установлен фактический скин. Теперь я хотел бы получить уведомление, когда свойство skin действительно изменено, чтобы затем я смог установить свойства на объекте скина, которые необходимы.

Есть ли что-нибудь, что я могу прослушать, или метод, который я могу переопределить, или что-то, что будет уведомлено о том, что скин действительно установлен на мой пользовательский скин сейчас?

ответ

0

Вам повезло, это простое решение. SkinnableComponent (а значит, и Button) реализует следующие две защищенные методы, которые вы можете переопределить:

  • attachSkin(), называется каждый раз, когда новая кожа применяется к компоненту
  • detachSkin(), вызывается, когда текущая кожа удалена от компонента

Это говорит о том, что я постараюсь избежать установки свойств непосредственно на кожу, поскольку создает плотную связь между компонентом хоста и кожей. Попробуйте обновить свойства, используя компоненты кожи.