查看旧版所有文章

有风的日子,网页设计爱好者的家园

旧版

您现在访问的是有风的日子旧版!新版地址为:http://www.hellowind.com
有风的日子现已全面升级!新标识,新域名,新架构,新布局,新平台,不变的承诺——有风的日子,网页设计爱好者的家园
为网页设计、平面设计、多媒体设计及摄影爱好者提供资讯、博客、相册、论坛等多方位服务...

Flash MX 2004系列教程(二)UI组件-Tree Component

来源:BlogBus.com    发表于2004-2-23 10:35:43

关键字:Flash, 组件, Tree

  The Tree Component组件允许你显示一个树状结构的导航,而且可以是图形化的。其实你已经很了解它了,因为它和我们经常使用的资源管理器是十分相似的。 

  1. 创建一个400*200大小的新的FLASH文件,使用下列的图示做为参照进行布局。

 

  2. 创建两个新分层,从上到下分别将新层命名为:action,tree component,text area component。

  3. 选择tree component层的第一帧。从组件库中将tree component拖放到层中打开属性面板将其宽设为172高设为180。并且将其实例名命名为myTree。

 

  4. 选择text area component层上第一帧,从组件库中将text area component组件拖至此层上,打开属性面板,将其宽设为188高设为180,并将其实例名命名为myStatusArea,设置其html属性为true。因为我们要将它的内容显示为html格式。同时要将它的换行属性设为true。

  5. 使用记事本找开你下载的xml文件tree_source.xml来观看它的结构。观看它是如何包括文件目录以及一些未包括的文档。

<?xml version="1.0" encoding="iso-8859-1"?>
<NODE label="Personal Folders">
    <NODE label="Inbox">
        <NODE label="First message" />
        <NODE label="Second message" />
        <NODE label="Third message" />
    </NODE>
    <NODE label="Drafts">
        <NODE label="First message" />
    </NODE>
    <NODE label="Outbox" isBranch="true">
        <NODE label="No messages." />
    </NODE>
    <NODE label="Sent Items">
        <NODE label="First message" />
        <NODE label="Second message" />
    </NODE>
</NODE>

  6. 在action层的第一帧上输入如下代码:

//载入并指定数据源
myTreeDataProvider=new XML();
//在xml中忽略空格,这在xml中是很重要的。
myTreeDataprovider.ignoreWhite=true;
//载入外部xml文件
myTreeDataProvider.load("tree_source.xml");
//xml的onload事件
myTreeDataProvider.onLoad=function(){
 myTree.dataProvider=myTreeDataProvider;
}

  以上代码是用来载入数据源,同时将这个XML文件作为数据源提供给TREE COMPONENT。

  7. 继续在下方加入如下代码

//设置tree component的侦听器。
myTreeListener=new Object();
//节点打开事件
myTreeListener.nodeOpen=function(eventObject){
 myStatusArea.text+="<LI>"+eventObject.node.attributes.label+"opened.";
}

  以上代码建立侦听器,来侦听节点打开事件。

  8. 继续加入代码如下:

//节点关闭事件
myTreeListener.nodeClose=function(eventObject){
 myStatusArea.text+="<LI>"+eventObject.node.attributes.label+"<I>closed.</I>.";
}

  向上面代码一样建立关闭事件。

  9. 继续在帧上加入代码

//改变事件
myTreeListener.change=function(eventObject){
 //选择的节点
 var theSelectedNode=eventObject.target.selectedNode;
 //选中节点的label
 var theSelectedNodeLabel=theSelectedNode.attributes.label;
 //将其显示在textArea组件中
 myStatusArea.text+="<LI>"+theSelectedNodeLabel+"<B>Selected</B>.";
}

  10. 继续加入如下代码。

myTree.addEventListener("nodeOpen",myTreeListener);
myTree.addEventListener("nodeClose",myTreeListener);
myTree.addEventListener("change",myTreeListener);

  在这里要注意的是在注册侦听器时你不能一次注册所有的事件。

  11. 测试你的影片吧。