1
我在舞臺上有一個DataGrid(listDataGrid),DataProvider(listDataProvider)作爲源。我希望能夠將Sprites添加到DataGrid的一列中,這些列將根據鼠標點擊的位置改變顏色。DataGrid內部的Sprite
我有一個單獨的類來處理CellRenderer,並從一個靜態的MovieClip類(運行時間之前存在庫中)添加數據。但是,我不知道如何實現動態內容的相同類型的功能。
被修改: 根據Flash文檔,CellRenderer也可以是Sprite類型。因此,我四處查看是否可以創建一個DataGridColumn來渲染我在運行時創建的Sprite。
我的代碼如下所示:
import fl.data.DataProvider;
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import flash.display.Sprite;
var newBox:Sprite = new Sprite;
newBox.graphics.beginFill(0);
newBox.graphics.drawRect(0,0,20,20);
newBox.graphics.endFill();
var dp:DataProvider = new DataProvider;
var _testDataGrid:DataGrid = testDataGrid;
testDataGrid.rowHeight = 20;
_testDataGrid.dataProvider = dp;
var colA:DataGridColumn = new DataGridColumn("A");
var colB = new DataGridColumn ("sprite") ;
colB .cellRenderer = Sprite;
colB .dataField = "sprite";
_testDataGrid.addColumn(colA);
_testDataGrid.addColumn(colB);
dp.addItem({A:"test", sprite:"newBox"});
這導致以下錯誤:
TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChild()
at fl.controls::DataGrid/drawList()
at fl.controls::DataGrid/draw()
at fl.core::UIComponent/callLaterDispatcher()
不知道在哪裏把它從這裏:X