请教怎样更换flex背景图片(用BorderContainer)?

各位老大,小弟用如下代码实现了设置flex的背景图片:<s:BorderContainerbackgroundImage="@Embed(source='red.png'... 各位老大,小弟用如下代码实现了设置flex的背景图片:
<s:BorderContainer backgroundImage="@Embed(source='red.png')"
backgroundImageFillMode="clip"
width="80" height="30" x="600" y="154"
borderVisible="false" visible="true" id="beijing">
</s:BorderContainer>
可是我想动态更换背景图片,我先这样实现:加个id为beijing,然后更改beijing的图片source,但是始终达不到目的,请教各位老大指点啊,感激不尽!!
展开
 我来答
百度网友5cf2587
2012-02-01 · TA获得超过233个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:228万
展开全部
“加个id为beijing,然后更改beijing的图片source.“这个思路不对。
1、你设定的id是BorderContainer的,而BorderContainer并没有source提供给你去更改背景图片。
2、你应该了解一些@Embed(source='red.png')这种用法的含义。flex中使用图片有两种方式,一种通过路径,另一种使用Embed嵌入。前一种可以通过改变source来更换图片,后如码氏一种却不可以,Embed的资源,被嵌入到编译生成的swf中。

你要做的是修改BorderContainer的backgroundImage,但这个不是BorderContainer的渣散属性,是一个样式,需要用setStyle("backgroundImage", "")。
把需要参与更换的图片声明为嵌入的资源变量
[Bindable]
[Embed(source="red.png")]
private var red_backGround:Class;

[Bindable]
[Embed(source="blue.png"模橡)]
private var blue_backGround:Class;

在你的动态触发实现的响应里处理
beijing.setStyle("backgroundImage", red_backGround);
主要基于Flash Builder 4开发,希望以上信息对你有帮助!
更多追问追答
追问
多谢大哥指点,我确实是对@Embed了解的不是很透,不过照这样写的话blue.png和red.png都是要编译入生成的swf中了吧,那么如果我有七八张图片的选择的话,岂不是这么多张图片都是要被编译入swf中,那么最后swf的体积是不是会很大,那么可以解决这个问题吗?还是我理解有误?
追答
资源嵌入确实会增大swf的体积。
给你提供两种方法
1、动态加载图片,设置BorderContenter的样式,使用SWFLoader
//声明一个swfloader用于加载图片

//侦听加载完成,设置borderContainer的backgroundImage
private function id_swfLdrCompleteHandler(event:Event):void
{
beijing.setStyle("backgroundImage", id_swfLdr.content);
}

上面是一个框架,你只需要在动态触发事件响应里处理
...
switch(value)
{
case vlaue_1:
id_swfLdr.load('red.png');
break;
case value_2:
id_swfLdr.load('blue.png');
break;
...
2、mxml转成as,对相应的标签会添加到容器里,UI上呈现的组件标签都有一个“层”的概念。
你最先添加的被放在底层。

//在相应的事件处理里面
...
case value_1:
id_backGround.source="red.png";
break;
...
这样也是OK的!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式