Button皮肤定制有关问题(怎么用hostComponent进行交互)

Button皮肤定制问题(如何用hostComponent进行交互)
我的意图:
动态替换Button的背景图片

问题描述(下面是ButtonSkin.mxml,其中对分析此问题不重要的部分都已略去,红字部分是重点):
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
  minWidth="21" minHeight="21"
  alpha.disabled="0.5">
  <fx:Metadata>
  <![CDATA[
  /**
  * @copy spark.skins.spark.ApplicationSkin#hostComponent
  */
  [HostComponent("spark.components.Button")]
  ]]>
。。。
  <s:Rect left="0" top="0" right="0" bottom="0" >
  <s:fill>
  <s:BitmapFill source="@Embed({hostComponent.content})"/> //红字处本意是想动态加入图片的,可hostComponent总为null
  </s:fill>
  </s:Rect>
。。。
</s:SparkSkin>

我是这么用此皮肤的:
updateBtn.content = "assets/小图标/mechanic.png";
updateBtn.setStyle("skinClass", UpdateButtonSkin);

按上面这样写图片始终显示不出来,但把mxml文件中的hostComponent.content替换成"assets/小图标/mechanic.png"就能正常显示出图片,不知是不是我写错了,该如何修改,谢谢!

------解决方案--------------------
主程序:
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
//imgbg 这个是自定义的, 主要就是通过 setStyle 和 getStyle 来控制 skinClass 的参数.
btn.setStyle("imgbg","2_uuussseeennn.jpg")
}
]]>
</fx:Script>
<s:Button id="btn" label="click" skinClass="XX" />
----------------------
XX skinClass 里关于图片的代码:

<s:Image source="{getStyle('imgbg')}" />

-----------------------