flex4中如何给自定义Group控件添加背景图片

<?xmlversion="1.0"encoding="utf-8"?><s:Groupxmlns:fx="http://ns.adobe.com/mxml/2009"x... <?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:buttons="com.giantstone.workflow.ui.buttons.*"
width="46" height="80" rollOut="this.currentState=null"
resizeEffect="{resize}" >
<fx:Style source="balloon.css"/>
<fx:Metadata>
[Event(name="removeNode", type="flash.events.MouseEvent")]
[Event(name="linkNode", type="flash.events.MouseEvent")]
</fx:Metadata>
<s:states>
<s:State name="removeQuestion"/>
</s:states>
<s:Group x="27" y="10" width="109" height="58" id="msgCanvas" >
<mx:Label x="15" y="5" text="Remove me?" fontWeight="bold" />
<mx:Button x="5" y="30" label="Yes" width="47" click="dispatchEvent(new MouseEvent('removeNode'))"/>
<mx:Button x="54" y="30" label="No" width="49" click="this.currentState=null"/>
</s:Group>
</s:Group>
怎么给这个最外面的GROUP添加背景图片?
展开
 我来答
百度网友5cf2587
推荐于2016-04-28 · TA获得超过233个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:225万
展开全部
1、直接在组件里嵌入图片
增加标签;
<fx:Script>
<![CDATA[
[Bindable]
[Embed(source="asserts/bg01.PNG")]
private var bkimage:Class;
]]>
</fx:Script>
在view组件中加入<mx:image />标签
...
</s:Group>
<mx:Image id="image" source="{bkimage}" left="0" top="0" right="0" bottom="0" />
</s:Group>

2、提供接口由使用组件的实例定义背景图片
script标签:
<fx:Script>
<![CDATA[

[Bindable]
private var _bkimage:Class;

public function get bkimage():Class
{
return _bkimage;
}

public function set bkimage(value:Class):void
{
_bkimage = value;
}

]]>
</fx:Script>
试图标签:
...
</s:Group>
<mx:Image id="image" source="{_bkimage}" left="0" top="0" right="0" bottom="0" />
</s:Group>

使用该组件:
<fx:Script>
<![CDATA[
[Bindable]
[Embed(source="asserts/bg01.PNG")]
private var bkimage:Class;

]]>
</fx:Script>
<local:MyGroup width="400" height="300" verticalCenter="0" horizontalCenter="0" bkimage="{bkimage}"/>
希望对你有帮助!
更多追问追答
追问
实在看不明白你的答案,我新手,没接触过flex,网上下了个3.5的例子,但是我用的是4.1,所以好多东西要改,其中就有这个,Group的自定义控件,我的Group是在原位置的,不是控件里面包含的Group,你办法我试试 行的话给你分,100分不是那么好拿的
我试验过了,你的不是添加背景图片,而是直接设置个图片,完全把我的group里面的button都给挡住了,完全看不见了
追答
你要实现的是一个控件,我比较建议第二种方案,就是允许外部自定义自己的背景图片。
我用的是FB4
你要的是外层的Group背景,其实就是你控件的背景,这里定义一个image标签采用完全填充的坐标方式,就是这个控件被引用时的尺寸。你这里其实实现的是一个组合控件,通过对现有组件的重新组合实现新的组件效果
你的源码修改如下:

[Event(name="removeNode", type="flash.events.MouseEvent")]
[Event(name="linkNode", type="flash.events.MouseEvent")]

补充一下,不知道你对这种方法的理解,在Script脚本里定义了一个变量:_bkimage,采用了绑定的方式,这个变量可以作为这个组件的一个属性,在使用该组件的时候,你可以看到的,不过显示为:bkimage,绑定的意义,就是你在使用该组件的时候,修改bkimage可以动态的呈现背景图片。
在使用该组件的时候,你定义的这个组件里会多出“bkimage”这个属性。这里可以设置你想要的背景图片。

作为新手还是要做动手尝试,呵呵,我也刚用了一年!
hycy1975
2011-03-22 · TA获得超过8462个赞
知道大有可为答主
回答量:2239
采纳率:84%
帮助的人:821万
展开全部
首先写个skin:
<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">

<!-- Define what you are skinning -->
<fx:Metadata>
[HostComponent("spark.components.Application")]
</fx:Metadata>

<!-- Define the visual component states -->
<s:states>
<s:State name="normal" />
<s:State name="disabled" />
</s:states>

<!-- Draw background -->
<s:Rect horizontalCenter="0"
width="400" height="1000">
<s:fill>
<s:SolidColor color="#CCCCCC" />
</s:fill>
<s:stroke>
<s:SolidColorStroke color="#AAAAAA" />
</s:stroke>
</s:Rect>

<!-- Layout the parts of the skin -->
<s:Group id="contentGroup"
top="20" horizontalCenter="0">
<s:layout>
<s:VerticalLayout />
</s:layout>
</s:Group>
</s:SparkSkin>
===============
然后在应用里面引用:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
skinClass="components.AppSkin">
//应用代码
</s:Application>
追问
我的是自定义控件
而且我是<s:Group开头的
不是你的<s:Application开头的 Group开头的里面根本没有skinClass属性,100分你就从网上COPY一下?你这些东西我都看过了,就是因为不会给Group加背景图片才问的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hegang0912
2011-03-23
知道答主
回答量:15
采纳率:0%
帮助的人:5.3万
展开全部
可以设置样式也可以写CSS。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
riaer
2011-03-25 · 超过17用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:40.9万
展开全部
没有backgroundImage这个属性吗??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gongke2012
2011-03-28
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
http://blog.csdn.net/mixi1988/archive/2011/01/14/6139541.aspx 我前段时间写的例子。正好满足你的要求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式