我的 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 加载时,正确的影片剪辑被加载到单元格中。但是,当用户通过单击列的标题对列进行排序时,某些影片剪辑不会加载。我检查了数据是否正常排序,当我追踪 "movie"+value.Number 时,会显示正确的字符串。
我想也许我需要在再次设置源之前卸载每个单元格中的影片剪辑?我该怎么做呢?
我注意到的另一件事是,当 DataGrid 需要滚动时,因为屏幕上的行数超过了(呃!),那么一次只会显示一组影片剪辑,就好像有一个“活动”或“在focus' 单元格,其中将显示唯一的影片剪辑。同样,我猜测 Flash 正在尝试仅显示可滚动 DataGrid 的可见部分中的影片剪辑,并在每次滚动时尝试刷新。然而,只有 1 个单元格显示影片剪辑,而不是所有可见部分(大约 8 行)。
谢谢