Flex List 选项变灰,信息过长有提示,修复dragComplete事件不准的BUG
2011-08-24 10:32
441 查看
// ActionScript file package com.invexer.component { import mx.controls.*; import mx.events.DragEvent; import mx.managers.DragManager; import flash.events.Event; import mx.controls.listClasses.ListBase; import flash.events.MouseEvent; import flash.events.KeyboardEvent; import mx.core.ClassFactory; import mx.controls.List; import mx.controls.listClasses.IListItemRenderer; import mx.controls.listClasses.ListItemRenderer; [Event(name="dragFinished", type="flash.events.Event")] public class MyList extends List { public function MyList() { super(); this.itemRenderer = new ClassFactory(DisabledListItemRenderer); } override protected function mouseOverHandler(event:MouseEvent):void { var item:IListItemRenderer = mouseEventToItemRenderer(event); if (itemDisable(event)) { // Disable selection. } else { super.mouseOverHandler(event); } } override protected function mouseDownHandler(event:MouseEvent):void { if (itemDisable(event)) { // Disable click. return; } else { super.mouseDownHandler(event); } } override protected function mouseUpHandler(event:MouseEvent):void { if (itemDisable(event)) { // Disable click. return; } else { super.mouseUpHandler(event); } } override protected function mouseClickHandler(event:MouseEvent):void { if (itemDisable(event)) { // Disable click. return; } else { super.mouseClickHandler(event); } } override protected function mouseDoubleClickHandler(event:MouseEvent):void { if (itemDisable(event)) { // Disable double click. event.preventDefault(); } else { super.mouseDoubleClickHandler(event); } } override protected function keyDownHandler(event:KeyboardEvent):void { event.stopPropagation(); // Disable key down event. //super.keyDownHandler(event); } private function itemDisable(event:MouseEvent):Boolean { var item:IListItemRenderer = mouseEventToItemRenderer(event); if (item != null && item.data != null && ((item.data is XML && item.data.@enabled == 'false') || item.data.enabled==false || item.data.enabled=='false') ) { return true; } else { return false; } } override protected function dragCompleteHandler(event:DragEvent):void { super.dragCompleteHandler(event); dispatchEvent(new Event("dragFinished")); } } }
package com.invexer.component { import mx.controls.Label; public class DisabledListItemRenderer extends Label { private var _enabled:Boolean = true; public function DisabledListItemRenderer() { super(); } override public function set data(value:Object):void { if (value != null && ((value is XML && value.@enabled == 'false') || value.enabled==false || value.enabled=='false')){ this._enabled = false; }else{ this._enabled = true; } super.data = value; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); if (!this._enabled) { textField.setColor(getStyle("disabledColor")); }else{ textField.setColor(getStyle("color")); } } } }
相关文章推荐
- 嘉缘人才系统_BUG修复 出生日期总提示需大于12岁
- 在Win7中运行某些软件时,突然提示出错信息“应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。”
- 屏蔽DataGridView控件DataError 事件提示的异常信息
- 修复IE浏览器resize事件bug
- bug修复日记---------玩家信息被重复写入数据库
- android-----Login失败提示信息有误(bug)
- 屏蔽DataGridView控件DataError 事件提示的异常信息
- js操作输入框提示信息且响应鼠标事件
- ECShop 产品属性选项增加提示信息
- 提示信息 感应鼠标移动事件 自动显示url页面内容
- win764位loadrunner安装问题:提示:少了Microsoft Visual c++2005 sp1运行时组件,安装时会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息,无法正常安装;
- QT3.2版本QMessageBox字符串过长不能显示的bug修复
- 开发人员将状态置为“已修正”后,弹出failed to post bug提示信息问题
- JAVA之树(创建,遍历,修改,删除,标签,提示信息,展开折叠事件...)
- 安装LR11 时,安装Microsoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息
- MFC 鼠标悬停事件,提示信息
- javascript获取鼠标坐标跟随控制层渐显信息提示效果(有BUG在调试中)
- bug修复日记------玩家第一次登陆的信息没有存储
- 检测触摸事件(用户触摸屏幕时提示信息)
- TreeView单击事件的BUG修复及深入探讨返回事件