zoukankan      html  css  js  c++  java
  • ItemRender 外部渲染器

    外部渲染器,一般将ItemRender从主文件中脱离,独自作为一个文件存在,好处是再某些情况下可以多次重复利用。

      下面是一个前一篇文中datagrid采用外部渲染器的例子。

    <?xml version="1.0" encoding="utf-8"?>
    <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
    <mx:Script>
    <![CDATA[
    override public function set data( value:Object ) : void {
    super.data = value;
    var today:Number = (new Date()).time;
    var pubDate:Number = Date.parse(data.date);
    if( pubDate > today ) setStyle("backgroundColor",0xff99ff);
    else setStyle("backgroundColor",0xffffff);
    }
    ]]>

    </mx:Script>
    <mx:Image source="{data.image}" width="50" height="50" scaleContent="true"/>
    <mx:Text width="100%" text="{data.title}"/>
    </mx:HBox>

    这个是外部ItemRender的独立文件代码,是mxml文件。(当然也可以是actionscript的类文件。)

    记住主文件中要加一句: itemRenderer="GridColumnSimpleRenderer",后面这个可以自己随意指定名字的。

    下面是一个actionscript类的例子:

    package asClass
    {
    import events.BuyBookEvent;
    import flash.events.MouseEvent;

    import mx.containers.HBox;
    import mx.controls.Image;
    import mx.controls.Text;


    public class GridColumnSimpleRender extends HBox //ItemRender的最底层必须是一个容器
    {
    private var hb:HBox;
    private var image:Image;
    private var text:Text;

    public function GridColumnSimpleRender()
    {
    super();
    }

    override protected function createChildren():void //覆盖重写复方法,用以创建组件
    {
    hb=new HBox();
    hb.setStyle("width","400"); //通常用于对象获取不到的样式属性的设置
    addChild(hb);

    image=new Image();
    image.width=50;
    image.height=50;
    image.scaleContent=true;
    hb.addChild(image);

    text=new Text();
    text.percentWidth=100;
    hb.addChild(text);
    }
    override protected function commitProperties():void //覆盖方法,初始化加载数据
    {
    super.commitProperties();

    text.text=data.title;
    image.source=data.image;
    }

    override public function set data( value:Object ) : void //改变背景色
    {
    super.data = value;
    var today:Number = (new Date()).time; //Date.time(),日期转换成Number,自 1970 年 1 月 1 日午夜以来的毫秒数。
    var pubDate:Number = Date.parse(data.date); //Date.parse(),日期转换成Number,意思跟上面一样。
    if( pubDate > today ) setStyle("backgroundColor",0xff99ff);
    else setStyle("backgroundColor",0xffffff);
    }
    }
    }






     


     

  • 相关阅读:
    OpenStack Nova Release(Rocky to Train)
    5G 与 MEC 边缘计算
    Cinder LVM Oversubscription in thin provisioning
    浅析视频云行业及实现技术
    虚拟化技术实现 — KVM 的 CPU 虚拟化
    虚拟化技术实现 — QEMU-KVM
    云计算与虚拟化技术发展编年史
    计算机组成原理 — FPGA 现场可编程门阵列
    Installutil.exe 注册exe
    ASP.NET MVC- 布署
  • 原文地址:https://www.cnblogs.com/tiandi/p/2199139.html
Copyright © 2011-2022 走看看