《linux 内核完全剖析》 vsprintf.c 代码笔记

Flex1 到 Flex3 使用的都是 Halo组件,这里将介绍Halo 组件中的List 和 DataGrid 。其中 DataGrid 是显示多列数据中最常用的方式。但是在Spark中还有没对应DataGrid的组件。

先写个“食物”的模型 Dinner.as 。

package model {
  [Bindable]
  public class Dinner {
    public var name:String;
    public var food:String;
    public var due:Date;
    
    public function Dinner(
      name:String = "", food:String = "", due:Date = null) {
      this.name = name;
      this.food = food;
      this.due = due == null ? new Date() : due;
    }
  }
}

然后在对食物进行处理,相关解释以注释写在Mxml中。

<?xml version="1.0" encoding="utf-8"?>
<s:Application
  xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx"
  width="100%" height="100%">
<fx:Script>
<![CDATA[
  import mx.collections.ArrayCollection;
  import model.Dinner;
  
  [Bindable]
  private var _dinners:ArrayCollection = new ArrayCollection([ //创建一个“食物”集合
    new Dinner("Breakfast", "Subway"),
    new Dinner("Lunch", "French"),
    new Dinner("Supper", "Japanese food"),
    new Dinner("Coffee"), new Dinner("Tea"), new Dinner("Wine")]);
    
  private function formatDinner(dinner:Dinner):String { //创建格式化数据的函数
    return dinner.name +
    (dinner.food == "" ? "" : (" (" + dinner.food + ")")) +
    ", due on " + dateFormatter.format(dinner.due) + ".";
  }

  private function formatDate(item:Object,
    column:DataGridColumn):String
  {
    var dinner:Dinner = item as Dinner;
    return dinner == null ? "" : dateFormatter.format(dinner.due);
  }
]]></fx:Script>
<fx:Declarations>
  <mx:DateFormatter id="dateFormatter" formatString="YYYY-MM-DD"/> <!--格式化日期的组件-->
</fx:Declarations>
  <s:layout>
    <s:HorizontalLayout paddingLeft="10" paddingTop="10"
      paddingBottom="10" paddingRight="10"/>
  </s:layout>
  <mx:List dataProvider="{_dinners}" labelFunction="formatDinner"
    alternatingItemColors="[#EEEEEE, #FFFFFF]"
    variableRowHeight="true" wordWrap="true"
    width="250" height="150"/>
  <mx:DataGrid width="100%" height="150" dataProvider="{_dinners}">
    <mx:columns>
		<!--数据列名同属性名-->
      <mx:DataGridColumn headerText="Name" dataField="name" 
        width="150"/>
		<!--labelFunction 格式化当前列数据的函数-->
      <mx:DataGridColumn headerText="Due" dataField="due"
        width="100" labelFunction="formatDate"/>
      <mx:DataGridColumn headerText="Food" dataField="food"/>
    </mx:columns>
  </mx:DataGrid>
</s:Application>


《linux 内核完全剖析》 vsprintf.c 代码笔记,布布扣,bubuko.com

《linux 内核完全剖析》 vsprintf.c 代码笔记

上一篇:myeclipse打war包


下一篇:Photoshop打造精致的反光水晶球