Flex: Tree 에서 ICON 을 사용자 정의 하 는 몇 가지 방식

From: http://yecon.blog.hexun.com/30744073_d.html#
1. 기본 트 리 의 속성 은 폴 더 와 파일 이 모두 folderOpenIcon, folderClosed Icon, and defaultLeafIcon 을 통 해 실 행 됩 니 다. 프로그램 에서 기본 인 자 를 얻 으 려 면 이 몇 개의 인 자 를 통 해 처리 할 수 있 습 니 다.
    var myMenu:SysMenu = SysMenu(item);     if(myMenu.children.length==0){      return leftMenuTree.getStyle("defaultLeafIcon");     }     if ( leftMenuTree.isItemOpen(item) ) {             return leftMenuTree.getStyle("folderOpenIcon");          } else {             return leftMenuTree.getStyle("folderClosedIcon");          }
물론 플 렉 스 라벨 을 통 해 직접 만 들 수도 있 습 니 다.

 
2. data provider 를 통 해 데이터 원본 을 제공 할 때 icon 을 지정 합 니 다.
                                                        
 
3. 함수 setItemItcon 을 통 해
         [Bindable]          [Embed(source="assets/radioIcon.jpg")]          public var iconSymbol1:Class;          [Bindable]          [Embed(source="assets/topIcon.jpg")]          public var iconSymbol2:Class;                   private function setIcons():void {             myTree.setItemIcon(myTree.dataProvider.getItemAt(0),                iconSymbol1, iconSymbol2);             myTree.setItemIcon(myTree.dataProvider.getItemAt(1),                iconSymbol2, null);          }
4. Tree 는 icon 의 속성 iconFunction 을 지원 합 니 다. 사용자 정의 처리 함 수 를 사용 하면 됩 니 다. 예 는 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<!-- http://yecon.blog.hexun.com/30744073_d.html -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            [Bindable]
            [Embed("assets/bullet_go.png")]
            private var myBulletGoIcon:Class;

            [Bindable]
            [Embed("assets/bullet_star.png")]
            private var myBulletStarIcon:Class;

            [Bindable]
            [Embed("assets/bullet_wrench.png")]
            private var myBulletWrenchIcon:Class;

            private function tree_iconFunc(item:Object):Class {
                var iconClass:Class;
                switch (XML(item).localName()) {
                    case "league":
                        iconClass = myBulletGoIcon;
                        break;
                    case "division":
                        iconClass = myBulletStarIcon;
                        break;
                    case "team":
                        iconClass = myBulletWrenchIcon;
                        break;
                }
                return iconClass;
            }
        ]]>
    </mx:Script>

    <mx:XML id="dp">
        <mlb>
            <league label="American League">
                <division label="East">
                    <team label="Boston" />
                    <team label="New York" />
                    <team label="Toronto" />
                    <team label="Baltimore" />
                    <team label="Tampa Bay" />
                </division>
                <division label="Central">
                    <team label="Cleveland" />
                    <team label="Detroit" />
                    <team label="Minnesota" />
                    <team label="Chicago" />
                    <team label="Kansas City" />
                </division>
                <division label="West">
                    <team label="Los Angeles" />
                    <team label="Seattle" />
                    <team label="Oakland" />
                    <team label="Texas" />
                </division>
            </league>
        </mlb>
    </mx:XML>

    <mx:Tree id="TreeProject"
            dataProvider="{dp.league}"
            labelField="@label"
            showRoot="true"
            iconFunction="tree_iconFunc"
            width="320"
            height="240" />

</mx:Application>

좋은 웹페이지 즐겨찾기