0
votes

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.

1
What have you tried ? Did you found anything on the internet ? Show us some code / examples.blue112
All the examples are generally flex based. This link however links to Flash based implementation:help.adobe.com/en_US/ActionScript/3.0_UsingComponentsAS3/… but examples don't work for me.Vishwas
You're saying it's not working for you. Why don't you show us some code, even if it's not working ? It will help us helping you :)blue112

1 Answers

1
votes

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 ; 


        }





    } 
}