Anpassa komponenten DataGrid

Du kan omforma en DataGrid-komponent vågrätt och lodrätt under utvecklingen och vid körning. Under utvecklingen markerar du komponenten på scenen och använder verktyget Omforma fritt eller något av kommandona på menyn Ändra > Omforma. Vid körning använder du metoden setSize() eller tillämpliga egenskaper, t.ex. width , height , scaleX och scaleY . Det det inte finns någon vågrät rullningslist justeras kolumnbredderna proportionerligt. Om kolumnjusteringar (och därmed celljusteringar) inträffar kan texten i cellerna beskäras.

Använda stilar med komponenten DataGrid

Du kan ställa in stilegenskaper för att ändra utseendet på en DataGrid-komponent. DataGrid-komponenten ärver stilar från List-komponenten. (Se Använda format med komponenten List .)

Ställa in format för en enskild kolumn

Ett DataGrid-objekt kan ha flera kolumner och du kan ange olika cellåtergivare för varje kolumn. Varje kolumn i en DataGrid representeras av ett DataGridColumn-objekt och klassen DataGridColumn innehåller en cellRenderer -egenskap som du kan definiera kolumnens CellRenderer för.

  1. Skapa ett nytt Flash-dokument (ActionScript 3.0).

  2. Dra DataGrid-komponenten till bibliotekspanelen.

  3. Lägg till följande kod i åtgärdspanelen i den första bildrutan på tidslinjen. Den här koden skapar en DataGrid med en lång textsträng i den tredje kolumnen. I slutet ger den kolumnens cellRenderer -egenskap namnet på en cellåtergivare som återger en cell med flera rader.

    /* This is a simple cell renderer example.It invokes 
    the MultiLineCell cell renderer to display a multiple  
    line text field in one of a DataGrid's columns. */ 
     
    import fl.controls.DataGrid; 
    import fl.controls.dataGridClasses.DataGridColumn; 
    import fl.data.DataProvider; 
    import fl.controls.ScrollPolicy; 
     
    // Create a new DataGrid component instance. 
    var aDg:DataGrid = new DataGrid(); 
     
    var aLongString:String = "An example of a cell renderer class that displays a multiple line TextField" 
    var myDP:Array = new Array(); 
    myDP = [{firstName:"Winston", lastName:"Elstad", note:aLongString, item:100}, 
        {firstName:"Ric", lastName:"Dietrich", note:aLongString, item:101},  
        {firstName:"Ewing", lastName:"Canepa", note:aLongString, item:102},  
        {firstName:"Kevin", lastName:"Wade", note:aLongString, item:103},      
        {firstName:"Kimberly", lastName:"Dietrich", note:aLongString, item:104},  
        {firstName:"AJ", lastName:"Bilow", note:aLongString, item:105},  
        {firstName:"Chuck", lastName:"Yushan", note:aLongString, item:106},     
        {firstName:"John", lastName:"Roo", note:aLongString, item:107}, 
    ]; 
     
    // Assign the data provider to the DataGrid to populate it. 
    // Note: This has to be done before applying the cellRenderers. 
    aDg.dataProvider = new DataProvider(myDP); 
     
    /* Set some basic grid properties. 
    Note: The data grid's row height should reflect 
    the number of lines you expect to show in the multiline cell. 
    The cell renderer wil size to the row height. 
    About 40 for 2 lines or 60 for 3 lines.*/ 
     
    aDg.columns = ["firstName", "lastName", "note", "item"]; 
    aDg.setSize(430,190); 
    aDg.move(40,40); 
    aDg.rowHeight = 40;// Allows for 2 lines of text at default text size. 
    aDg.columns[0].width = 70; 
    aDg.columns[1].width = 70; 
    aDg.columns[2].width = 230; 
    aDg.columns[3].width = 60; 
    aDg.resizableColumns = true; 
    aDg.verticalScrollPolicy = ScrollPolicy.AUTO; 
    addChild(aDg); 
    // Assign cellRenderers. 
    var col3:DataGridColumn = new DataGridColumn(); 
    col3 = aDg.getColumnAt(2); 
    col3.cellRenderer = MultiLineCell;
  4. Spara FLA-filen som MultiLineGrid.fla.

  5. Skapa en ny ActionScript-fil.

  6. Kopiera följande ActionScript-kod till i skriptfönstret:

    package { 
     
     
        import fl.controls.listClasses.CellRenderer; 
     
        public class MultiLineCell extends CellRenderer 
        { 
             
            public function MultiLineCell() 
            {     
                textField.wordWrap = true; 
                textField.autoSize = "left"; 
            } 
            override protected function drawLayout():void {             
                textField.width = this.width; 
                super.drawLayout(); 
            } 
        } 
    }
  7. Spara ActionScript-filen som MultiLineCell.as i samma mapp som du sparade MultiLineGrid.fla i.

  8. Återgå till MultiLineGrid.fla-programmet och välj Kontroll > Testa film.

    DataGrid bör se ut så här:

    DataGrid för MultiLineGrid.fla-programmet
    DataGrid för MultiLineGrid.fla-programmet

Ställa in rubrikformat

Du ställer in textstilen för en rubrikrad genom att använda headerTextFormat -stilen. Följande exempel använder TextFormat-objektet för att ställa in headerTextFormat -stilen så att den använder teckensnittet Arial, röd färg, teckensnittsstorleken 14 och kursiv.

  1. Skapa ett nytt Flash-fildokument (ActionScript 3.0).

  2. Dra DataGrid-komponenten till scenen och ge den förekomstnamnet aDg .

  3. Öppna åtgärdspanelen, markera bildruta 1 i huvudtidslinjen och ange följande kod:

    import fl.data.DataProvider; 
    import fl.controls.dataGridClasses.DataGridColumn; 
     
    var myDP:Array = new Array(); 
    myDP = [{FirstName:"Winston", LastName:"Elstad"}, 
        {FirstName:"Ric", LastName:"Dietrich"},  
        {FirstName:"Ewing", LastName:"Canepa"},  
        {FirstName:"Kevin", LastName:"Wade"},      
        {FirstName:"Kimberly", LastName:"Dietrich"},  
        {FirstName:"AJ", LastName:"Bilow"},  
        {FirstName:"Chuck", LastName:"Yushan"},     
        {FirstName:"John", LastName:"Roo"}, 
    ]; 
     
    // Assign the data provider to the DataGrid to populate it. 
    // Note: This has to be done before applying the cellRenderers. 
    aDg.dataProvider = new DataProvider(myDP); 
    aDg.setSize(160,190); 
    aDg.move(40,40); 
    aDg.columns[0].width = 80; 
    aDg.columns[1].width = 80; 
    var tf:TextFormat = new TextFormat(); 
    tf.size = 14; 
    tf.color = 0xff0000; 
    tf.italic = true; 
    tf.font = "Arial" 
    aDg.setStyle("headerTextFormat", tf);
  4. Välj Kontroll > Testa filmen för att köra programmet.

Använda skal med komponenten DataGrid

Komponenten DataGrid använder följande skal för att representera de olika visuella lägena:

DataGrid-skal

CellRenderer-skalet används för brödcellerna i DataGrid, och HeaderRenderer-skalet används för rubrikraden. Följande procedur ändrar bakgrundsfärgen på rubrikraden, men du kan använda samma procedur för att ändra bakgrundsfärgen på brödcellerna i DataGrid genom att redigera CellRenderer-skalet.

  1. Skapa ett nytt Flash-dokument (ActionScript 3.0).

  2. Dra DataGrid-komponenten till scenen och ge den förekomstnamnet aDg .

  3. Dubbelklicka på komponenten för att öppna paletten med skal.

  4. Ställ in zoomkontrollen på 400% för att förstora ikonerna för redigering.

  5. Dubbelklicka på HeaderRenderer-skalet för att öppna paletten med HeaderRenderer-skal.

  6. Dubbelklicka på Up_Skin för att öppna det i symbolredigeringsläge, och klicka på dess bakgrund tills den har markerats och fyllningsfärgväljaren visas i egenskapsinspektören.

  7. Välj färgen #00CC00 med fyllningsfärgväljaren för att använda den på bakgrunden till det Up_Skin HeaderRenderer-skalet.

  8. Klicka på knappen Tillbaka till vänster om redigeringsfältet ovanför scenen för att återgå till dokumentredigeringsläge.

  9. Lägg till följande kod i åtgärdspanelen på bildruta 1 i tidslinjen för att lägga till data i DataGrid:

    import fl.data.DataProvider; 
     
    bldRosterGrid(aDg); 
    var aRoster:Array = new Array(); 
    aRoster = [ 
            {Name:"Wilma Carter",Home: "Redlands, CA"},  
            {Name:"Sue Pennypacker",Home: "Athens, GA"}, 
            {Name:"Jill Smithfield",Home: "Spokane, WA"}, 
            {Name:"Shirley Goth", Home: "Carson, NV"}, 
            {Name:"Jennifer Dunbar",Home: "Seaside, CA"} 
    ]; 
    aDg.dataProvider = new DataProvider(aRoster); 
    function bldRosterGrid(dg:DataGrid){ 
        dg.setSize(400, 130); 
        dg.columns = ["Name", "Home"]; 
        dg.move(50,50); 
        dg.columns[0].width = 120; 
        dg.columns[1].width = 120; 
    };
  10. Välj Kontroll > Testa filmen för att testa programmet.

    DataGrid ska se ut som det gör i följande bild, med en grön bakgrund i rubrikraden.

    DataGrid med anpassad bakgrund till rubrikrad
    DataGrid med anpassad bakgrund till rubrikrad