使用UI组件tree时,添加的数据结构必须是xml吗?添加xml时对于tree的单元格里面的label如何控制例如visible的属性

使用tree实现抽屉效果,无法控制xml数据里面的label标签的各种属性。
已邀请:

shiyang12345

赞同来自:

var xmlString="<data>"+
"<dir name='shi' num='10000' state='已集结' time_pro='' isOpen='true'>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"</dir>"+
"<dir num='shi' ok='dsasddsfsasdad' isOpen='true'>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"<file num='1000' ok='ok' isOpen='true'/>"+
"</dir>"+
"</data>";
var xml = this.parseXMLFromString(xmlString);
console.log(this.m_tree)

this.m_tree.xml =xml;

cuixueying

赞同来自:

这里以alpha,官方tree示例为例,你可以参考下
1、在xml里,给你的项添加一个关于alpha的属性,譬如isAlpha
	// 组装tree的数据
var treeData:String = "<data>";
for(var i:int = 0; i < 5; ++i)
{
//在xml里添加一个控制透明度的属性,自定义命名,此处叫isAlpha
treeData += "<item label='Directory " + (i + 1) + "' isOpen='true'"+" isAlpha='0.5'>";
for(var j:int = 0; j < 5; ++j)
{
treeData += "<leaf label='File " + (j + 1) + "'/>";
}
treeData += "</item>";
}
treeData += "</data>";
2、为你的tree添加一个渲染函数renderHandler,在渲染函数下根据你的alpha值对每条项进行属性赋值
		tree.renderHandler=new Handler(this,onTreeRender);	
// 返回值e代表的是item项
private function onTreeRender(e):void
{
//获取每条Item的alpha属性并赋值给Item对象
if(e._dataSource.isAlpha)
{
var alphaNum:Number=e._dataSource.isAlpha;
e.alpha=alphaNum;
}//如果未设置alpha的项,则默认透明度为1
else
{
e.alpha=1;
}
}
附件已经上传,可以参考,把alpha改成你对应的visible属性即可!
 

要回复问题请先登录注册