5.13.自定义List被选中项的外观

5.13.1.问题
为List 组件中的选中项贴上一个图片
5.13.2.解决方法
覆盖ListBase 类的drawSelectionIndicator 方法并修改由该方法使用的指示器Sprite 对象。
5.13.3.讨论
List 控件通过drawSelectionIndicator 方法为在列表中选中的itemRenderer 创建外观。
该方法的信息如下:
+展开
-ActionScript
override protected function drawSelectionIndicator(indicator:Sprite, x:Number, y:Number,width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void

所有的偏移量,大小,色彩信息都可以由x, y, width, height, 和color 属性来设置。第一个参数indicator,是一个画在选中项上的flash.display.Sprite 实例,最后一个参数itemRenderer 是将被选择的条目渲染器。

实现方法的例子添加了一个图片到指示器Sprite 对象,由于当itemRenderer 被撤消选中时sprite 对象被移除和销毁,所以不必担心后面的回收。

除了应用于所有高光的itemRenderer , drawHighlightIndicatory 方法和drawSelectionIndicator 方法功能一样, itemRenderer 被用户鼠标滑过,但不选择,请看:
+展开
-ActionScript
override protected function drawHighlightIndicator(indicator:Sprite, x:Number, y:Number,width:Number, height:Number, color:uint, itemRenderer:IListItemRenderer):void

用一张单独的图片来表现高光,放到itemRenderer 的边缘,并在用户鼠标滑过列表的itemRenderer 时显示。
下面是该技术的完整清单:
+展开
-XML
<mx:List xmlns:mx="http://www.adobe.com/2006/mxmlselectionColor="#ffcccc">
<mx:Script>
<![CDATA[
import mx.controls.listClasses.IListItemRenderer;
[Embed("../../assets/outline_arrow.gif")]
private var img:Class;
[Embed("../../assets/in_arrow.gif")]
private var highlight_img:Class;
override protected function drawHighlightIndicator(indicator:Sprite, x:Number,y:Number, width:Number, height:Number, color:uint,itemRenderer:IListItemRenderer):void {
var this_img:Object = new highlight_img();
indicator.addChild((this_img as DisplayObject));
(this_img as DisplayObject).x = itemRenderer.width -(this_img as DisplayObject).width;
super.drawHighlightIndicator(indicator, x, y, width, height, 0xff0000,itemRenderer);
}
override protected function drawSelectionIndicator(indicator:Sprite, x:Number,y:Number, width:Number, height:Number, color:uint,itemRenderer:IListItemRenderer):void{
var this_img:Object = new img();
indicator.addChild((this_img as DisplayObject));
(this_img as DisplayObject).x = itemRenderer.width - (this_img as DisplayObject).width
super.drawSelectionIndicator(indicator, x, y, width,height, 0xffcccc,itemRenderer);
}

]]>
</mx:Script>
</mx:List>

加支付宝好友偷能量挖...


评论(0)网络
阅读(83)喜欢(0)flash/flex/fcs/AIR