flash Tree组件使用经验

Flash的Tree组件使用是非常方便的,按照教程中所说的只需要拖一个组件到场景中,然后把这个组件
实例dataProvider属性指向一个XML文挡对象就可以了。当然这个XML的格式是有一定的标准,每一个
节点NODE可以有Label、Data两中属性,但实际使用中我们可以根据自己的规则命名更多的属性,节点
的名称也可以自定义,Tree组件只是将XML的结构转换成树的结构,将label的值显示为节点的名称。
一个flash版的xml编辑器:
为什么可以用Tree组件制作xml编辑器呢,因为ActionScript中提供了一个非常方便的操作API,他与Tree
组件的显示紧密结合做起来简单方便。(当然第一次做的时候查文档调试了半天,毕竟as≠Java|JS。)
System.useCodepage = true;
//防止乱码
myTreeXML = new XML();
//建立一个xml对象
myTreeXML.ignoreWhite = true;
//忽略其中的空格
myTreeXML.load("myxml.xml");
//载入要编辑的xml文件
myTreeXML.onLoad = function(success) {
 if (success) {
  myTree.dataProvider = myTreeXML;
  //如果载入成功,为tree组件指定数据源   
 } else {
  trace("No success!!");
 }
};
//下面仍然是组件的监听
myTreeListener = new Object();
myTreeListener.change = function(tree) {
 var xnode=tree.target.selectedItem;
 trace(xnode.attributes.data);
};
myTree.addEventListener("change", myTreeListener);
添加三个按钮,分别为{ 增加、删除、更改 }
// 增加
on(click){
 _root.myTree.selectedNode.addTreeNode("Label","Data");
 _root.myTree.refresh();
}
//删除
on(click)
{
 _root.myTree.selectedNode.removeNode();
 _root.myTree.dataProvider=_root.myTreeXML;  //不从新设置XML会出现奇怪现象
 _root.myTree.refresh();
}
//更改
on(click)
{
 _root.myTree.selectedNode.attributes.label="新标识";
 _root.myTree.selectedNode.attributes.data="新数据";
 _root.myTree.refresh();
}
忽略其中的一些交互部分制作,最后实现的效果就是,选中一个节点以后就可以
1 在其子节点中添加一个新的child节点
2 删除该节点与其下属所有节点
3 修改当前节点的显示名称与数据的值
这里的Tree类与TreeDataProvider接口实际上就好象java加载数据库一样,Tree就是驱动连接到具体
的xml(数据库),TreeDataProvider接口使用Tree类的API调用数据,而对Tree实例进行的数据改动将
马上反映到xml对象的实例中去。最后把xml对象写回文件中,就完成实际的同步了。
XML文件了。
  
本文转自:http://www.5uflash.com/flashjiaocheng/Flashzujianxuexi/1351.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值