【问题标题】:Flex-4 Beta2 : Background image stopped workingFlex-4 Beta2:背景图像停止工作
【发布时间】:2010-12-10 10:39:51
【问题描述】:
将项目从 Flex4 Beta1 升级到 Beta2 后,我发现 Halo 组件不再支持 background-image 样式。
例如:
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundImage="@Embed(source='myImage.png')" />
请注意,jira 问题SDK-23050 指出以下内容:
Spark 皮肤不支持 backgroundImage。
但这并没有使用 Spark 皮肤,只是一个标准的 Halo 组件。
有人有什么想法吗?
【问题讨论】:
标签:
apache-flex
flex4
flex-spark
halo
【解决方案1】:
<s:BorderContainer x="100" y="100" width="200" height="200"
backgroundImage="@Embed(source='image.jpg)" >
</s:BorderContainer>
使用上面的代码。任何 spark:BorderContainer 都有选项 backgroundImage,或者其他 backgroundImage 选项。将您想要的图像添加到您的源中,并为 image.jpg 输入您的图像名称及其扩展名。不要忘记单引号。
【解决方案2】:
您现在必须创建一个皮肤类。使用 VGroup 并指定自定义皮肤。
【解决方案3】:
Flex 4 中的 MX 组件允许您使用 Spark 外观,Adobe 默认使用 Spark 外观,因此同一应用程序中的 MX 和 Spark 组件看起来像是属于同一类。显然,Spark 皮肤支持的功能与 Halo 皮肤不同,现在如果您希望皮肤看起来不同(除了一些简单的颜色样式),您需要调整皮肤。考虑到设计师的创造力,这是一种比仅使用 CSS 更好的方法,因为它更灵活,但它让熟悉 Flex 3 工作流程的人感到惊讶。
复制默认皮肤并为其添加背景并不难。但是,如果您喜欢的话,您也应该能够使用旧的 Halo 皮肤来获得 backgroundImage 支持。我相信您想告诉您的 VBox 使用 mx.skins.halo.HaloBorder。
【解决方案4】:
我最终将 backgroundImage 更改为 backgroundSkin,这解决了问题。