在DataGrid上使用itemRenderer时确定拖动代理

SIr*_*lot 5 apache-flex air adobe datagrid

我在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");
    }
Run Code Online (Sandbox Code Playgroud)

这适用于数据网格中的所有项目.在拖动时,这不再显示具有较低alpha的代理.我希望能够保留该样式,如何确定此特定项目是否正在应用itemrenderer.我在想如果我可以确定对象是否是代理,然后自己淡化文本.

谢谢!

Ama*_*osh 0

尝试将 setStyle 调用移至重写的设置数据方法

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");
  }
}
Run Code Online (Sandbox Code Playgroud)