Reputation: 1541
How can i have a checkbox inside Flash list control ?
What i have coded so far :
CustomCellRenderer.as
package
{
import fl.controls.CheckBox;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
public class CustomCellRenderer extends CheckBox implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;
public function CustomCellRenderer() {
}
public function set data(d:Object):void {
_data = d;
label = d.label;
}
public function get data():Object {
return _data;
}
public function set listData(ld:ListData):void {
_listData = ld;
}
public function get listData():ListData {
return _listData;
}
}
}
Inside Flash IDE Actions Panel :
import fl.controls.List;
var myList:List
myList.allowMultipleSelection =true;
myList.setStyle("cellRenderer", CustomCellRenderer);
myList.addItem({label:"Burger", price:"$5.95"});
myList.addItem({label:"Fries", price:"$1.95"});
myList.addItem({label:"Burger", price:"$5.95"});
myList.addItem({label:"Fries", price:"$1.95"});
The problems is the checkboxes that show, can't get checked simultaneously ( unless Ctrl button is clicked ).
V.
Upvotes: 0
Views: 1226
Reputation: 1541
Got the solution:
Using ctrlKey attribute does the job.
Thanks to the tutorial at : http://active.tutsplus.com/tutorials/actionscript/as3-quick-tip-hacking-the-event-flow/
ActionsPanel:
import flash.events.Event;
var myList:List
//myList.setStyle("cellRenderer", MyCellRenderer);
myList.addEventListener(MouseEvent.CLICK, hackMouseListener, true);
myList.allowMultipleSelection =true;
myList.setStyle("cellRenderer", CustomCellRenderer);
myList.addItem({label:"Burger", price:"$5.95"});
myList.addItem({label:"Fries", price:"$1.95"});
myList.addItem({label:"Burger", price:"$5.95"});
myList.addItem({label:"Fries", price:"$1.95"});
function hackMouseListener(e:MouseEvent):void{
e.ctrlKey = true;
}
CustomCellRenderer.as
package
{
import fl.controls.CheckBox;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import fl.controls.List ;
public class CustomCellRenderer extends CheckBox implements ICellRenderer {
private var _listData:ListData;
private var _data:Object;
public function CustomCellRenderer() {
}
public function set data(d:Object):void {
_data = d;
label = d.label;
}
public function get data():Object {
return _data;
}
public function set listData(ld:ListData):void
{
_listData = ld;
}
public function get listData():ListData {
return _listData;
}
public override function set selected(val_bool:Boolean):void
{
_selected = val_bool
super.selected = _selected ;
}
public override function get selected():Boolean
{
return _selected ;
}
}
}
Upvotes: 1