Flex 4在组件外部重设已在skin class内设置的样式

 

  进入Flex4时代后,我们往往不会再使用Flex自带的“难看外观”,而是自己写skin class,为自己的组件写一个“漂亮皮肤”。

  有时为了方便就会在skin里把一些样式属性都写好。比如一个button的label我往往就会在skin里直接写上fontSize="13" fontWeight="bold",因为所有使用这个skin的button基本上都是这个样子的。

  但是问题来了,有时可能你正好想要一个样子一样,只是fontSize要变大或变小一点的button,如果你直接<s:Button fontSize="100" skinClass="..."/>,那我很遗憾地告诉你这样是不行的,因为Flex4中创建组件是先加载属性再加载skin,如果skin里设了样式,那么就会覆盖你后来设置的样式(fontSize还是13不是100)。

  吼吼~~不要灰心,办法当然是有的。如此这般,如此这般啊……

  写成这样就万事大吉了:

  <s:Button skinClass="..." creationComplete="event.currentTarget.labelDisplay.setStyle("fontSize", 100)" />

posted @ 2011-05-04 13:02  lovecd  阅读(294)  评论(0编辑  收藏  举报