actionscript-3 - 为什么我的带有可排序列的 AS3 DataGrid 在排序后显示错误的影片剪辑加载到单元格中?

标签 actionscript-3 datagrid cellrenderer flash-cs6

我的 AS3 项目中有一个 datagrid 组件,并且有一个自定义单元格渲染器分配给一列,该列根据该单元格数据的值将影片剪辑加载到单元格中。例如,如果单元格数据是数字 1,我加载movieclip1,如果2 我加载movieclip2。这很好用。在 CustomCellRenderer 类中,我使用

 public function set data(value:Object):void {
   _data = value;
   // value.Number is the value that I use to determine which movie clip to show in this cell 
   source = "movie"+value.Number;
 }

当 DataGrid 加载时,正确的影片剪辑将加载到单元格中。但是,当用户通过单击列的标题对列进行排序时,某些影片剪辑不会加载。我已经检查过数据排序是否正常,当我找出“电影”+值时,会显示正确的字符串。

我想也许我需要在再次设置源之前卸载每个单元格中的影片剪辑?我该怎么做呢?

我注意到的另一件事是,当 DataGrid 需要滚动时,因为屏幕上的行数超过了适合的行数(废话!),那么一次只会显示一组影片剪辑,就好像有一个“事件”或“在focus' 单元格,其中将显示唯一的影片剪辑。同样,我猜测 Flash 正在尝试仅显示可滚动 DataGrid 的可见部分中的影片剪辑,并在每次滚动时尝试刷新。但是,只有 1 个单元格显示影片剪辑,而不是所有可见部分(大约 8 行)。

谢谢

最佳答案

可能它与数据网格单元虚拟化有关,因为它试图优化滚动性能并回收单元布局。尝试将虚拟布局设置为 false,也许会有所帮助。

关于actionscript-3 - 为什么我的带有可排序列的 AS3 DataGrid 在排序后显示错误的影片剪辑加载到单元格中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12176794/

相关文章:

c# - 当我在 WPF Mvvm 中按下按钮时,如何在 DataGrid 中显示数据?

java - 根据其索引动态更改 jtree 中特定节点的图标

c++ - 在关闭套接字之前未传送 actionscript tcp 数据包

flash - 将powerpoint转换为flash

actionscript-3 - 在AS3中展开var args

wpf - DataGrid 中的 EnableColumnVirtualization 如何工作?

wpf - 将绑定(bind)数据传递到 DataGrid 中的用户控件

actionscript-3 - 如何在 as3 中为我的 mp3 播放器添加 2 个音量 slider

java - 尝试为 JTable 中的特定单元格着色... getTableCellRendererComponent 覆盖

actionscript-3 - AS3 禁用 Datagrid 内 textInput 的可编辑/可选择