浏览 2030 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-15
最后修改:2009-11-22
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" borderColor="#FFFFFF" > <mx:Label id="title"/> <mx:Image source="logo.png"/> </mx:Box> 很明显id=title的Label 是不会实现textRollOverColor的,因为Box的color无论如何变化都不会影响到title Label的字体颜色。 每一个grid item是mx.controls.dataGridClasses.DataGridItemRenderer的实例。textRollOverColor是DataGridItemRenderer在validateNow的时候重新计算得出的。例如 在下面代码validateNow里的 mytxt.setStyle("color", newColor); 解决方案代码如下: public class labelItemRanderer extends HBox implements IDataRenderer, IDropInListItemRenderer,IListItemRenderer { public var mytxt:Label; public function TradeStatusItemRanderer() { super(); mytxt= new Label(); this.addChild(mytxt); } private var _data:Object; override public function get data():Object { return _data; } override public function set data(value:Object):void { _data = value; } private var _listData:DataGridListData; [Bindable( "dataChange" )] public function get listData():BaseListData { return _listData; } public function set listData( value:BaseListData ):void { _listData = DataGridListData( value ); } override public function validateNow():void { if (data && parent){ var newColor:Number; if (DataGridBase(_listData.owner).isItemHighlighted(_listData.uid)) { newColor = getStyle("textRollOverColor"); } else if (DataGridBase(_listData.owner).isItemSelected(_listData.uid)) { newColor = getStyle("textSelectedColor"); } else { newColor = getStyle("color"); } } mytxt.setStyle("color", newColor); super.validateNow(); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |