0

我有一个带有自定义皮肤类的火花按钮子类,定义如下:

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

然后,我在此按钮的脚本部分中为对象设置了一个子类,我在该对象上注册了一个属性侦听器。在监听器中,我需要在皮肤本身上设置一个属性。但是,碰巧该属性返回的对象skin还不是我在 skinClass 上设置的类型。我假设在设置实际皮肤之前已经调用了我的属性侦听器。我现在希望在skin属性实际更改时收到通知,以便我可以在需要的皮肤对象上设置属性。

有什么我可以听的或我可以覆盖的方法或通知皮肤现在实际上设置为我的自定义皮肤的东西吗?

4

1 回答 1

0

你很幸运,这很容易解决。SkinnableComponent(因此也Button)实现了以下两个受保护的方法,您可以覆盖它们:

也就是说,我会尽量避免直接在皮肤上设置属性,因为它会在宿主组件和皮肤之间创建紧密耦合。尝试使用皮肤部件更新属性。

于 2013-01-10T11:04:59.473 回答