我在Flex DataGrid上使用默认的拖放功能,但是,dataGrid本身有一个itemrenderer。 看起来像:
public class FlashFileDataGridRenderer extends Label{
public function FlashFileDataGridRenderer(){
super();
}
override protected function updateDisplayList (unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
this.setStyle("paddingLeft", "3");
if (data instanceof FlashEntryBean) {
if ((data.cutFlag)) {
setStyle("color", "#AAAAAA");
}
else
setStyle("color", "#000000");
}
这适用于datagrid中的所有项目。在拖动时,这不再显示具有较低alpha的代理。我希望能够保留该样式,如何确定此特定项目是否正在应用itemrenderer。我在想如果我能确定对象是否是代理,然后自己淡化文本。
谢谢!
答案 0 :(得分:0)
不确定您使用的是哪个SDK版本,但在3.5中它确实在拖动代理中保留了浅灰色文本颜色。
答案 1 :(得分:0)
尝试将setStyle调用移动到overriden set data方法
override public function set data(t:Object):void
{
super.data = t;
if (data instanceof FlashEntryBean) {
if (data.cutFlag)
setStyle("color", "#AAAAAA");
else
setStyle("color", "#000000");
}
}