Hi
In my AS code I am building a grid. Each grid row gets 3 event
listeners, 1st for a mouse double click event,
2nd for a mouse over and the 3rd for a mouse out event like listed
below.
In the event handlers I want to dereference the params object but I am
always
getting the same values i.e the last assigned value.
I understand the difference between passing params by value and by
reference, but I am creating a new
params object for each gridrow, so this is something I don't
understand.
Hope someone can help.
TIA
public function build_grid() : VBox {
var params : Object;
......
agrid = new Grid;
for ( i = 0; i < records.length; i++){
agridrow = new GridRow;
agridrow.doubleClickEnabled = true;
agridrow.buttonMode = true;
agridrow.useHandCursor = true;
params = new Object;
params.row = i;
params.rin = rapport_records[i].rin;
agridrow.addEventListener(MouseEvent.DOUBLE_CLICK, function
(event : MouseEvent) : void {
griddoubleclick(event,params);
},false,0,false
);
agridrow.addEventListener(MouseEvent.MOUSE_OVER,function
(event : MouseEvent) : void {
addrollover(event,params);
},false,0,false
);
agridrow.addEventListener(MouseEvent.MOUSE_OUT,function
(event : MouseEvent) : void {
removerollover(event,params);
},false,0,false
);
// creating grid items
... more lines of code, not shown
// add grid items to grid row
... more lines of code, not shown
// add grid row to grid
agrid.addChild(agridrow);
}
// more code to add grid to a vbox
return(vbox);
}
public function griddoubleclick(event : Event, params : Object) : void
{
Alert.show('clicked ' + params.rin);
}
public function addrollover(event : Event,params : Object) : void {
var element : DisplayObject;
var gridrow : GridRow;
element = event.currentTarget as DisplayObject;
if (element is GridRow){
gridrow = GridRow(element);
gridrow.styleName = "rollover";
}
}
public function removerollover(event : Event,params : Object) : void {
var element : DisplayObject;
var gridrow : GridRow;
element = event.currentTarget as DisplayObject;
if (element is GridRow){
gridrow = GridRow(element);
if ( (params.row % 2) == 0){
gridrow.styleName = "even";
} else {
gridrow.styleName = "odd";
}
}
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Flex
India Community" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/flex_india?hl=en
-~----------~----~----~----~------~----~------~--~---