查了查Flash的帮助,搞定了! 我的测试代码(没有加入删除,但是问题已经解决了) a = myTree.addTreeNode("a");//myTree即Tree组件
a.addTreeNode("aa");
a.addTreeNode("ab");
ac = a.addTreeNode("ac");
ac.addTreeNode("aaa");
ac.addTreeNode("aab");
aa = ac.addTreeNode("aac");
myTreeListener = new Object();
myTreeListener.change = function(tmp) {
var child=tmp.target.selectedItem;//选中的子节点
var f = tmp.target.selectedItem.parentNode;//选中的子节点的父节点
var labels=[tmp.target.selectedItem.attributes.label]//子节点的label
var fathers=[tmp.target.selectedItem]//子节点
while (f != null) {//有父节点时
var f2 = f;
f = f2.parentNode;//父节点的父节点
labels.push(f2.attributes.label)//父节点的label
fathers.push(f2)//父节点
}//这个while差不多是个无限的
labels.pop()
fathers.pop()//这里要将最后一位去掉,因为最后一位是undefined
trace(labels)//输出label
trace(fathers)//输出子节点和它的父节点和父节点的父节点和......
nu=myTree.getDisplayIndex(child)//子节点在Tree中的索引
trace(nu)//输出索引
};
myTree.addEventListener("change", myTreeListener); 这就OK啦!想不到这么简单?
--------------------------------------------------------------------------------
不要慌,不要急,放开手脚想问题!
我的blog fscyjb.blogdriver.com
CYJB
等级:FLASH 2
注册:2005-01-15
发贴:157
积分:6
访问我的Blog 2005-01-21, 20:12 下午 IP 地址:已记录 报告 收藏 第6楼
捐赠积分再加一点:上面的可以获取父级,这里的可以实现即点即删 myTreeListener = new Object();
myTreeListener.change = function(tmp) {
var child=tmp.target.selectedItem
var f = tmp.target.selectedItem.parentNode;
fan=myTree.getDisplayIndex(f)
chn=myTree.getDisplayIndex(child)
nu=chn-fan-1
f.removeTreeNodeAt(nu)
};
myTree.addEventListener("change", myTreeListener); 还有简单的: myTreeListener = new Object();
myTreeListener.change = function(tmp) {
var f = tmp.target.selectedItem.parentNode;
f.removeTreeNodeAt(myTree.getDisplayIndex(tmp.target.selectedItem)-myTree.getDisplayIndex(f)-1)
};
a.addTreeNode("aa");
a.addTreeNode("ab");
ac = a.addTreeNode("ac");
ac.addTreeNode("aaa");
ac.addTreeNode("aab");
aa = ac.addTreeNode("aac");
myTreeListener = new Object();
myTreeListener.change = function(tmp) {
var child=tmp.target.selectedItem;//选中的子节点
var f = tmp.target.selectedItem.parentNode;//选中的子节点的父节点
var labels=[tmp.target.selectedItem.attributes.label]//子节点的label
var fathers=[tmp.target.selectedItem]//子节点
while (f != null) {//有父节点时
var f2 = f;
f = f2.parentNode;//父节点的父节点
labels.push(f2.attributes.label)//父节点的label
fathers.push(f2)//父节点
}//这个while差不多是个无限的
labels.pop()
fathers.pop()//这里要将最后一位去掉,因为最后一位是undefined
trace(labels)//输出label
trace(fathers)//输出子节点和它的父节点和父节点的父节点和......
nu=myTree.getDisplayIndex(child)//子节点在Tree中的索引
trace(nu)//输出索引
};
myTree.addEventListener("change", myTreeListener); 这就OK啦!想不到这么简单?
--------------------------------------------------------------------------------
不要慌,不要急,放开手脚想问题!
我的blog fscyjb.blogdriver.com
CYJB
等级:FLASH 2
注册:2005-01-15
发贴:157
积分:6
访问我的Blog 2005-01-21, 20:12 下午 IP 地址:已记录 报告 收藏 第6楼
捐赠积分再加一点:上面的可以获取父级,这里的可以实现即点即删 myTreeListener = new Object();
myTreeListener.change = function(tmp) {
var child=tmp.target.selectedItem
var f = tmp.target.selectedItem.parentNode;
fan=myTree.getDisplayIndex(f)
chn=myTree.getDisplayIndex(child)
nu=chn-fan-1
f.removeTreeNodeAt(nu)
};
myTree.addEventListener("change", myTreeListener); 还有简单的: myTreeListener = new Object();
myTreeListener.change = function(tmp) {
var f = tmp.target.selectedItem.parentNode;
f.removeTreeNodeAt(myTree.getDisplayIndex(tmp.target.selectedItem)-myTree.getDisplayIndex(f)-1)
};
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}