在某种情况下我们会需要实现如下应用情景:有两个图片或者是控件重叠,然后当我们的鼠标滑过或者是点击的时候某一个图片或控件时,被触发的图片或者会显示在顶层,以免被被遮住。
一般情况下,MXML和HTML,都是默认按照代码出现的先后顺序来排列控件的层次的,问题是我们一般会在运行的时候动态变换图片或控件的层次的,这样就不能依靠代码出现的先后顺序了,HTML是通过CSS样式的z-index来控制,但是在Flex里好像没有相对应的属性或者是方法来控制控件的层次先后关系。
不过我们可以自己手工用代码实现。
我们先来看一些类的继承关系:
Application
LayoutContainer
Container
UIComponent
而Container,UIComponent 都实现了IChildList接口管理容器中子项的方法。
所以可以通过IChildList定义的setChildIndex和numChildren属性来实现控件的层次排列关系。
演示代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
private function mouseOverHandler(event:MouseEvent):void{
this.setChildIndex(event.currentTarget as DisplayObject,this.numChildren-1);
}
]]>
</mx:Script>
<mx:Image mouseOver="mouseOverHandler(event)" x="42.85" y="40.6" source="images/cupgreen.png"/>
<mx:Image mouseOver="mouseOverHandler(event)" x="132.8" y="93.2" source="images/cupempty.png"/>
<mx:DateChooser mouseOver="mouseOverHandler(event)" x="456.6" y="118.6" />
<mx:DateChooser mouseOver="mouseOverHandler(event)" x="370.4" y="142.3"/>
</mx:Application>
演示的地址:
效果图:
分享到:
相关推荐
felx和springHibernate整合传递二进制数据到表中并在flex的dataGrid控件中显示的实践
FLEX控件
这是一个基于Adobe Flash Builder 4开发的Flex多文件上传控件,这个是Flex源码,asp.net调用Flex的源码在另一个附件里
Flex更换主题 更换皮肤控件 Flex更换主题 更换皮肤控件 Flex更换主题 更换皮肤控件 Flex更换主题 更换皮肤控件 Flex更换主题 更换皮肤控件
flex控件事件flex控件事件flex控件事件flex控件事件
Flex视图切换,自定义控件Demo.rar Flex视图切换,自定义控件Demo.rar Flex视图切换,自定义控件Demo.rar Flex视图切换,自定义控件Demo.rar
Flex中DataGrid和一些其它控件使用
Flex中如何检测Alert控件是否closed的例子.zip
一个自定义的拖拽flex控件,可以实现复制拖拽,不复制拖拽,可以拖拽图片,也可以由文字拖拽后变成图片。
Flex带时间的日期控件,样式和官方的一样,好看精简
Flex控件组图(便于学习、记忆) png格式 最好打印出来挂在墙上,每天看到,便于记忆^_^
flex 有时分秒的日期控件,该控件对dateField功能上进行了扩展,可以设置时分秒
flex上传控件,带进度、时间、速度显示,需要源代码的可以邮件harry95@163.com
Flex 自定义 时间 日历 控件
控件可直接使用,内附使用demo,有问题留言给我,我们共同进步。
flex datagrid 实现合计功能控件包 带源码,demo fxp是flex4的工程文件,导入到工作空间即可 直接导入项目即可。 更多访问我的blog www.dplayer.net
flex 制作的文本框组件,能够根据加载的字符串长度,自动调整文本框大小。将源码导入Flash builder即可使用。
Flex相册 Flex图片
针对flex新手熟悉flex 4.0以上版本控件
点击空间可以在屏幕上全屏显示,效果很炫,很牛-- 点击空间可以在屏幕上全屏显示,效果很炫,很牛