Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何在spark按钮上更改皮肤时获得通知_Apache Flex_Flex Spark - Fatal编程技术网

Apache flex 如何在spark按钮上更改皮肤时获得通知

Apache flex 如何在spark按钮上更改皮肤时获得通知,apache-flex,flex-spark,Apache Flex,Flex Spark,我有一个带有自定义skinclass的spark button子类,定义如下: <s:Button xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" skinClass="com.company.NvrControlButtonSkin" enabled="false"> 然后,在这个按钮子类的脚本部分,我为一个对象注册了一

我有一个带有自定义skinclass的spark button子类,定义如下:

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

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


有什么我可以听的吗?有什么我可以重写的方法吗?或者有什么东西可以通知我皮肤现在已经被设置为我的自定义皮肤了吗?

你很幸运,这是一个简单的修复方法<代码>SkinnableComponent(因此也包括
按钮
)实现了以下两种受保护的方法,您可以覆盖它们:

  • ,每次将新蒙皮应用于零部件时调用
  • ,从组件中移除当前蒙皮时调用
也就是说,我会尽量避免直接在蒙皮上设置属性,因为它会在主体组件和蒙皮之间创建紧密耦合。尝试使用蒙皮零件更新属性