手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网页制作>Flash>列表

在FlashMX2004的ListBox中应用HTML

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  下面这个就是最终的结果,您能够轻松的创建一个。

  这个效果是通过创建一个自定义cellRenderer,而不是ListBox默认的处理。

  一个cellRenderer就是任意的一个class,这个class要实现Cell Renderer API,被用来在基于列表的组件(List,DataGrid,Tree和Menu)显示一行的内容。您能够在帮助中找到更多关于Cell Renderers的信息

  Using Components -> Components Dictionary -> CellRenderer API

  按下面的步骤创建上面的例子

  1.下载我的LabelCellRenderer,解压缩到合适的路径(.fla所在的路径最好),保持压缩包中的文档目录

  2.插入一个新的MC符号,命名为"LabelCellRenderer",不加引号,这是个空的符号

  
请添加描述


  3.在库面板的LabelCellRenderer上单击右键,从菜单中选择“linkage...”。点击“Export for ActionScript”,使用“com.darronschall.LabelCellRenderer”作为AS2.0的类。而且确定“LabelCellRenderer”作为ID。

  
请添加描述


  4.添加一个Label组件到库中。这是必要的,因为LabelCellRenderer用他来显示。

  5.拖动一个ListBox到舞台上,给他一个实例名称。我使用“myList”,在这个例子中调整他的大小到250×90。

  6.复制粘贴下面的代码,以使用LabelCellRenderer

  // 普通的事件处理

  function change(eventObj) {

  trace(eventObj.target.selectedItem.data);

  }

  // 填充ListBox - 注意label字符串中的HTML代码

  myList.addItem({label:"Apples ... are red", data:"apple"});

  myList.addItem({label:"Oranges ... are orange", data:"orange"});

  myList.addItem({label:"Bananas ... are yellow", data:"banana"});

  myList.addItem({label:"Pears ... are green", data:"pear"});

  // 当内容不足以显示滚动条时,关闭这个讨厌的东西

  myList.vScrollPolicy = "off";

  // 使用 LabelCellRenderer 来显示 listBox中的label,并允许使用html myList.cellRenderer = "LabelCellRenderer";

  myList.addEventListener("change", this);

  // 原文里改变了组件样式,我发现不改反而更漂亮,呵呵(qhwa注)

  //_global.style.setStyle("themeColor", 0xCCCCCC);

  这样应该能够了,祝您好运喽~

  希望您明白了怎样使用一个CellRenderer有效地显示您需要地东西,而不是去钻研List组件的内部程式。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!