小小菜鸟的web菜园子

web开发学习。好记性不如烂笔头。每天进步一点点!

导航

FLEX中labelFunction的用法.

MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/02/21/creating-a-custom-label-function-on-a-flex-popupmenubutton-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout
="vertical"
        verticalAlign
="top"
        backgroundColor
="white">

    
<mx:Script>
        
<![CDATA[
            private function getTeams(dp:XML, leagueAbbrev:String, divisionLabel:String):XMLList {
                return dp.league.(@abbrev == leagueAbbrev).division.(@label == divisionLabel).team;
            }

            private function popUpMenuButton_labelFunc(item:Object):String {
                return item.@label + " " + item.@name;
            }
        
]]>
    
</mx:Script>

    
<mx:XML id="mlb" source="mlb.xml" />

    
<mx:XMLListCollection id="mlbXLC"
            source
="{getTeams(mlb, 'NL', 'West')}">
        
<mx:sort>
            
<mx:Sort>
                
<mx:fields>
                    
<mx:SortField name="@label"
                            caseInsensitive
="true" />
                
</mx:fields>
            
</mx:Sort>
        
</mx:sort>
    
</mx:XMLListCollection>

    
<mx:PopUpMenuButton id="popUpMenuButton"
            dataProvider
="{mlbXLC}"
            labelFunction
="popUpMenuButton_labelFunc" />

</mx:Application>


mlb.xml

 

  <?xml version="1.0" encoding="utf-8" ?> 
<!--  http://blog.flexexamples.com/2007/12/04/sorting-xml-documents-using-an-xmllistcollection/ 
  
--> 
<root>
<league label="American League" abbrev="AL">
<division label="West">
  
<team label="Los Angeles" name="Angels of Anaheim" /> 
  
<team label="Seattle" name="Mariners" /> 
  
<team label="Oakland" name="Athletics" /> 
  
<team label="Texas" name="Rangers" /> 
  
</division>
<division label="Central">
  
<team label="Cleveland" name="Indians" /> 
  
<team label="Detroit" name="Tigers" /> 
  
<team label="Minnesota" name="Twins" /> 
  
<team label="Chicago" name="White Sox" /> 
  
<team label="Kansas City" name="Royals" /> 
  
</division>
<division label="East">
  
<team label="Boston" name="Red Sox" /> 
  
<team label="New York" name="Yankees" /> 
  
<team label="Toronto" name="Blue Jays" /> 
  
<team label="Baltimore" name="Orioles" /> 
  
<team label="Tampa Bay" name="Rays" /> 
  
</division>
  
</league>
<league label="National League" abbrev="NL">
<division label="West">
  
<team label="Arizona" name="Diamondbacks" /> 
  
<team label="Colorado" name="Rockies" /> 
  
<team label="San Diego" name="Padres" /> 
  
<team label="Los Angeles" name="Dodgers" /> 
  
<team label="San Francisco" name="Giants" /> 
  
</division>
<division label="Central">
  
<team label="Chicago" name="Cubs" /> 
  
<team label="Milwaukee" name="Brewers" /> 
  
<team label="St. Louis" name="Cardinals" /> 
  
<team label="Houston" name="Astros" /> 
  
<team label="Cincinnati" name="Reds" /> 
  
<team label="Pittsburgh" name="Pirates" /> 
  
</division>
<division label="East">
  
<team label="Philadelphia" name="Phillies" /> 
  
<team label="New York" name="Mets" /> 
  
<team label="Atlanta" name="Braves" /> 
  
<team label="Washington" name="Nationals" /> 
  
<team label="Florida" name="Marlins" /> 
  
</division>
  
</league>
  
</root>

来自:http://blog.flexexamples.com/2008/02/21/creating-a-custom-label-function-on-a-flex-popupmenubutton-control/

posted on 2008-04-05 18:09  『小小菜鸟』  阅读(6253)  评论(1编辑  收藏  举报