2010-06-11 39 views
2

我试图为每个按钮添加一个不同的图标。我准备好了我的皮肤文件,但不知道是否必须为每个按钮创建不同的皮肤类。这听起来效率低下。有什么建议么?在火花按钮皮肤上添加图标

<s:Button id="pass" 
    width="110" 
    height="35" 
    fontWeight="bold" 
    fontSize="12" 
    fontFamily="arial" 
    label="Past Track" 
    click="pass_clickHandler(event)" 
    skinClass="skins.CustomSkin"/>  
<s:Button id="future" 
    width="110" 
    height="20" 
    fontWeight="bold" 
    fontSize="12" 
    fontFamily="arial" 
    label="Future Plan" 
    click="future_clickHandler(event)" 
    skinClass="skins.CustomSkin"/> 

皮肤:

<!-- layer 2: fill --> 
<!--- @private --> 
<s:Rect id="fill" left="1" right="1" top="1" bottom="1" radiusX="2"> 
    <s:fill> 
     <s:LinearGradient rotation="90"> 
      <s:GradientEntry color="#304fd7" 
          color.over="#4b6bf6" 
          color.down="0xAAAAAA" 
          alpha="0.85" /> 
      <s:GradientEntry color="#1f38a3" 
          color.over="#3653cf" 
          color.down="0x929496" 
          alpha="0.85" /> 
     </s:LinearGradient> 
    </s:fill> 
</s:Rect> 

<!-- icon --> // I could add my icon here but that would make me create 
       // a different icon image for different button 

回答

3

安装10.2 Flash Player和稳定的Hero SDK(4.5.0.19786)。然后,您可以使用Spark Button的图标属性。

http://labs.adobe.com/downloads/flashplayer10.html http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+Hero

注意你的项目,你将不得不专门针对播放器版本10.2.0。除非在我的环境中出现问题,否则使用Flash Builder的项目编译器设置中的'使用Flex SDK所需的最低版本'选项对此'stable'sdk无效。我不明白为什么这样的事情不会像你认为的那样行事。如果有人知道FB在哪里可以找到这个最低版本的播放器版本,请参考。我在flex-config.xml文件(sdk的frameworks文件夹内)中看到以下内容:

<! - 指定将运行的最低播放器版本编译的SWF。 - >
<目标玩家> 10.2.0 < /目标玩家>

Flash Builder中似乎忽略这一点,因为它仍试图使用需要的最低版本时,在库/播放器看/ 10.1文件夹在项目属性中设置。这是Adobe的一个主要痛点,似乎每一个版本都会引入一些小问题,最终会让人们放弃Flash作为一个可行的开发平台。如果有这个adobe的修复程序,请帮助我们并将其发布到此处。

+0

4.5.0.19786是部分解决方案。在Hero SDK(4.5.0.19786)中,如果您为要使用图标的按钮指定皮肤,则无法正常工作,此外4.5.0.19786还没有移动部件。如果你有皮肤,我会建议使用你的自定义皮肤,而不是可以呈现图标。 – 2011-03-04 01:50:06