【发布时间】:2009-10-26 04:15:18
【问题描述】:
如何在弹性树组件上显示访问历史记录?我想将点击/访问过的节点突出显示为不同的颜色,之后不会改变,这样所有访问过的节点都将是一种颜色。
我尝试通过
向底层 XML 添加一个属性var selected:XML=app.treeObj.selectedItem as XML;
if(!selected.hasOwnProperty("visited"))
{
selected.@visited = "true";
}
并为树提供一个 itemrenderer,如下所示。
public class CustomTreeItemRenderer extends TreeItemRenderer
{
public function CustomTreeItemRenderer()
{
super();
}
override public function set data(value:Object):void
{
if(value !=null)
{
super.data = value;
if(value.@visited=="true")
{
setStyle("color", 0x000000);
}
invalidateDisplayList()
}
}
}
这段代码确实保留了新颜色,但它也改变了根本没有访问过的节点的颜色。我在这里做错了什么?有没有更好的方法来实现这一点?
维平
【问题讨论】:
-
澄清一下:您是从树的选择处理程序中调用
selected.@visited = "true";,还是在将其分配给树的dataProvider之前调用? -
我在 itemClickHandler 上的 selectedItem 上调用它..
标签: apache-flex actionscript-3 tree e4x