当前位置 博文首页 > 如何在Renderer中设置属性 Renderer中设置属性的方法实例

    如何在Renderer中设置属性 Renderer中设置属性的方法实例

    作者:admin 时间:2021-08-31 18:59

    ClassFactory的properties妙用

    1)UITextField与label,使用label显不出来

    复制代码 代码如下:

    package com.citigroup.presentation.csa
    {
        import flash.events.MouseEvent;

        import mx.controls.Label;
        import mx.controls.advancedDataGridClasses.AdvancedDataGridHeaderRenderer;
        import mx.core.UITextField;
        import mx.events.FlexEvent;

        public class GroupHeaderRenderer extends AdvancedDataGridHeaderRenderer
        {
            public var children:Array=[];
            public var expand:Boolean=true;
            private var l:UITextField;
            public function GroupHeaderRenderer()
            {
                super();
                l=new UITextField();
                l.text="[-]";
                l.addEventListener(MouseEvent.CLICK,toggle);
                        addChild(l);
                this.addEventListener(FlexEvent.CREATION_COMPLETE,init);

            }
            private function init(event:FlexEvent):void{
                if(expand){
                    l.text="[-]";
                }else{
                    l.text="[+]";
                    toggleChildren(false);
                }
                this.removeEventListener(FlexEvent.CREATION_COMPLETE,init);
            }
            override public function set data(value:Object):void{
                super.data = value;
                this.setStyle("color","0xF9F088");
                this.setStyle("fontWeight","bold");
                this.setStyle("textAlign","left");
            }
            override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
                        super.updateDisplayList(unscaledWidth,unscaledHeight);
                label.x=0;
                l.x=label.x+label.width;
                        l.y=label.y;
            }

            private function toggle(event:MouseEvent):void{
                if(l.text=="[+]"){
                    l.text="[-]";
                    toggleChildren(true);
                }else{
                    l.text="[+]";
                    toggleChildren(false);
                }
            }
            private function toggleChildren(visible:Boolean):void{
                if(children.length<=1) return;
                for(var i:int=1;i<children.length;i++){
                    children[i].visible=visible;
                }
            }
        }


    public function genAdgColumn(headerText:String,dataField:String,width:Number=100):AdvancedDataGridColumn{
                    var col:AdvancedDataGridColumn=new AdvancedDataGridColumn();
                    col.headerText=headerText;
                    col.dataField=dataField;
                    col.width=width;
                    return col;
                }
                public function genAdgColumnGroup(headerText:String,dataField:String,children:Array,expand:Boolean=true):AdvancedDataGridColumnGroup{
                    var group:AdvancedDataGridColumnGroup=new AdvancedDataGridColumnGroup();
                    group.headerText=headerText;
                    group.dataField=dataField;
                    <span style="color:#ff0000;">var cf:ClassFactory=new ClassFactory(GroupHeaderRenderer);
                    cf.properties ={'children':children,'expand':expand};
                    group.headerRenderer=cf;                 
                    group.children=children;
                    return group;
                }

    jsjbwy
下一篇:没有了