0

Flash リスト コントロール内にチェックボックスを配置するにはどうすればよいですか?

私がこれまでにコーディングしたもの:

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; 
        } 
    } 
}

内部 Flash IDE アクション パネル:

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"});

問題は、表示されるチェックボックスであり、同時にチェックすることはできません (Ctrl ボタンがクリックされない限り)。

V.

4

1 に答える 1

1

解決策を得ました:

ctrlKey 属性を使用すると、ジョブが実行されます。

チュートリアルのおかげで: http://active.tutsplus.com/tutorials/actionscript/as3-quick-tip-hacking-the-event-flow/

アクションパネル:

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 ; 


        }





    } 
}
于 2012-11-13T15:36:35.993 に答える