There is a lot of code, so I just cut it down to the one in question. There might be some small errors here.
//////////////////////////////////
CellRenderer Code:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import mx.controls.DataGrid;
import mx.core.UIComponent
import test.as
class ctRenderer extends UIComponent {
var cell : MovieClip;
var listOwner : MovieClip; // the reference we receive to the list
var getCellIndex : Function; // the function we receive from the list
var getDataLabel : Function; // the function we receive from the list
function ctRenderer()
{
}
function createChildren(Void) : Void
{ //cellIcon is the linkage name or our icon in the library
cell = createObject("celltest", "Cell", 1, {styleName:this, owner:this});
size();
}
// note that setSize is implemented by UIComponent and calls size(), after setting
// __width and __height
function size(Void) : Void
{
cell.setSize(20, 20);
cell._x = (__width)/2;
cell._y = (__height)/2;
}
function setValue(str:String, item:Object, sel:Boolean) : Void
{
//trace(getDataLabel());
trace(item[getDataLabel()]);
trace("kakaka");
//trace(str);
// to check id the cell is selected
//var reallySelected:Boolean = selected != "normal" && listOwner.selectedNode == item;
cell._visible = (item!=undefined);
var temp:String = str;
if(temp == "test") {
trace("inloop");
if(item!=undefined){
trace("item defined: "+item[getCellIndex()]);
}
cell.gotoAndStop(10);
}
else if(temp != "test") {
trace("gotU!");
cell.gotoAndStop(2);
}
}
function getPreferredHeight(Void) : Number
{
return 16;
}
function getPreferredWidth(Void) : Number
{
//////////////////////////////////////////////////////////////
Code of test.as imported on frame 1:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import WatchButton.as
import mx.controls.gridclasses.DataGridColumn;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Set Data Grid Columns, Headers, CellRenderers
testdatagrid1.removeAllColumns();
var test_dgc:DataGridColumn = new DataGridColumn("test");
testgrid1.addColumn(test_dgc);
test_dgc.headerText = "test";
test_dgc.cellRenderer = "ctRenderer";
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Add Data to datagrid
var testUsers = new Array();
testUsers.addItem({test:"join"});
testUsers.addItem({test:"join"});
testUsers.addItem({test:"join"});
testgrid1.dataProvider = testUsers;
// For join button CellRenderer
testgrid1.getColumnAt(0).width = 60;
testgrid1.getColumnAt(0).resizable = false;
testgrid1.getColumnAt(0).cellRenderer = "ctRenderer";
////////////////////////////////////////////////////////////////////
The code that resides in Frame 2, inside the cellTest MovieClip:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import ctRenderer.as
var temp:ctRenderer = new ctRenderer();
var testjoinBtnListener:Object = new Object();
testjoinBtnListener.click = function(evt:Object) {
trace("works till testListener");
var test:String = "test";
temp.setValue(test, evt, true);
};
Note that I get in the CellRenderer code this line: trace("item defined: "+item[getCellIndex()]); gives me undefined.