您的位置:首页 > 其它

FLEX实践:TREE与SWFLOADER的简单应用

2009-02-25 11:33 337 查看
前言:在开始之前,先描述一下这例子的内容

1)实现TREE控件的简单应用(加载内容为XML格式)

2)外部CSS应用

3)不同FLEX应用程序之间通过SWFLOADER调用



下面开始本次实践吧!

1)创建CSS文件
CssTest.css

/*
CSS file */



.MyTextStyle1

{

font-family:
Copacetix;

font-size:
15pt;


fontWeight:bold;


color:#B62F19;


cornerRadius:13;

width:104;

height:32;

alpha:0.49;

}



2)创建CssTest.mxml(调用CSS文件为其中的button控件做外观设置)

<?xml
version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">

<mx:Style source="CssTest.css" />

<mx:Script>

<![CDATA[

import mx.controls.Alert;

private function showName():void{

Alert.show("Your name
is: "+username.text);

}

]]>

</mx:Script>

<mx:Text styleName="MyTextStyle" text="Please
input your name:" width="305" x="63"
y="37"/>

<mx:Button x="120" y="165"
label="Show Name" styleName="MyTextStyle1"
click="showName()"/>

<mx:TextInput x="63" y="92"
width="228" height="32" fontSize="15"
color="#100B3C" id="username" />



</mx:Application>



3)创建TreeTest2.mxml(引用TREE控件并调用CssTest.mxml)



<?xml
version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">

<mx:Style source="CssTest.css" />

<mx:states>

<mx:State
name="show1">


<mx:SetStyle target="{panel1}" name="fontSize"
value="26"/>


<mx:SetStyle target="{panel1}" name="verticalAlign"
value="top"/>


<mx:SetProperty target="{panel1}" name="layout"
value="vertical"/>


<mx:AddChild position="lastChild">


<mx:SWFLoader x="409" y="76"
source="CssTest.swf"/>



</mx:AddChild>

</mx:State>

</mx:states>

<mx:XMLList id="treeData">

<node id="10000" label="评估计划">

<node
id="10100" label="计划生成器">


<node id="10101" label="新建计划"
canvas="javaest.FirstCanvas"/>


<node id="10102" label="复制计划"
canvas="javaest.SecondCanvas"/>


</node>

<node
id="10200" label="计划管理">


<node id="10201" label="将计划转为准备运行" canvas="javaest.GetProductList"/>


<node id="10202" label="将计划转为正在配置" canvas="javaest.SecondCanvas"/>


<node id="10203" label="查询计划状态"
canvas="javaest.FirstCanvas"/>


</node>

<node
id="10300" label="我的博客">


<node id="10301" label="北边村人"
canvas="javaest.javaeye.com"/>




</node>

</node>

</mx:XMLList>

<mx:Script>

<![CDATA[


import mx.controls.Image;

import
mx.controls.Button;


import mx.containers.Canvas;


import mx.controls.Alert;


private function addNewTabPage(event:Event):void {


var selectedNode:XML=Tree(event.target).selectedItem as XML;


var id:String=selectedNode.@id;


var label:String=selectedNode.@label;


var canvasClassName:String=selectedNode.@canvas;




if (functionTree.dataDescriptor.isBranch(selectedNode)) {


functionTree.expandItem(selectedNode,
!functionTree.isItemOpen(selectedNode));


} else{


//如果节点项为“新建计划”,则将页面切换到SHOW1状态下


if(label=="新建计划"){


currentState="show1" ;


}





}


Tree(event.target).selectedItem=null;


}



]]>

</mx:Script>

<mx:Panel width="197"
height="548" dropShadowEnabled="false" title="新闻管理" id="panel1" fontSize="26">

<mx:Tree
id="functionTree" change="addNewTabPage(event)"
width="171" height="100%" enabled="true"
showRoot="true" dataProvider="{treeData}"
labelField="@label" borderStyle="none"
fontSize="13">

</mx:Tree>

</mx:Panel>

</mx:Application>



运行结果:

当节点不为“新建计划”时,不显示SHOW1的内容





当点击“新建计划”时,显示SHOW1状态的内容





运行CssTest.mxml的内容

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: