`
wangyujie
  • 浏览: 53800 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

自定义的List组件

    博客分类:
  • flex
 
阅读更多

在项目开发过程中,会经常使用List组件。系统给提供的List组件已经不能够满足我们的需求。这就需要我们根据自己的需求来创建一个自定义的List。

先在场景1中将自己要显示的布局用组件布置好,F8生成元件取名为MyCellRenderer并生成可编辑的类。右键编辑类ctrl+s保存到资源库中MyCellRenderer.as文件。然后在flash中编辑该类:

然后在场景1中,添加List组件F8生成组件取名为ItemList,双击取名为myList,然后右击动作选项,为其添加

myList.setStyle("cellRenderer", MyCellRenderer);

myList.rowHeight = 50;

myList.columnWidth = 38;

myList.rowHeight = 38;

myList.columnCount = 16;

myList.width = 630;

在页面中添加数据:

在动作中添加:var dp:DataProvider = new DataProvider();

dp.addItem( { skillName:"NY", skillLev:"20",skillid:"121"} );

navalList.dataProvider = dp;

根据自己所要完成的功能编辑MyCellRenderer类:

package {

import flash.display.MovieClip;

import flash.text.TextField;

import fl.controls.listClasses.ICellRenderer;

import fl.controls.listClasses.ListData;

import flash.geom.ColorTransform;

import flash.events.MouseEvent;

import flash.text.TextFormat;

import flash.filters.GlowFilter;

public class MyCellRenderer3 extends MovieClip implements ICellRenderer{

private var _data:Object;

private var _listData:ListData;

private var _selected:Boolean;

private var _backFunc:Function = null;

private var heroId:String;

public function MyCellRenderer3() {

// constructor code

trace("mycellrenderer3 zhixing le ================");

var tf:TextFormat = new TextFormat();

tf.color = 0xfff38b;

tf.size = 12;

heroName.setStyle('textFormat',tf);

heroLev.setStyle('textFormat',tf);

heroExp.setStyle('textFormat',tf);

this.buttonMode = true;

this.addEventListener(MouseEvent.CLICK,clickHandler);

}

private function clickHandler(event:MouseEvent):void {

this._backFunc(heroId);

}

public function set data(d:Object):void{

_data = d;

heroName.text=d.heroName;

heroLev.text=d.heroLev;

heroExp.text=d.heroExp;

this._backFunc = d.callback;

this.heroId = d.heroId;

}

public function get data():Object

{

return _data;

}

public function set listData(ld:ListData):void

{

_listData = ld;

}

public function get listData():ListData

{

return _listData;

}

public function set selected(s:Boolean):void {

_selected = s;

showbg();

}

private function showbg():void {

if (_selected) {

bg.transform.colorTransform = new ColorTransform(2.0, 2.0, 2.0);

} else {

bg.transform.colorTransform = new ColorTransform();

}

}

public function get selected():Boolean {

return _selected;

}

public function setSize(width:Number, height:Number):void

{

//trace(width, height, this.width);

}

public function setMouseState(state:String):void

{

trace(state);

}

}

}

初次研究组件,希望能否对大家有所帮助。如有不足之处,还望大家给些意见或建议。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics