`
牧羊人
  • 浏览: 213573 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex blazeds 异步加载tree

    博客分类:
  • flex
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				layout="absolute"
				creationComplete="initTreeData()"
				xmlns:lns="com.render.*">
	<!--异步加载节点的树-->
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.events.TreeEvent;
			import mx.collections.ArrayCollection;
			import com.sevice.funService.FunService;
			import mx.events.ListEvent;

			[Embed("com/assets/loading.swf")]
			private var loadingIcon:Class;
			[Embed("com/assets/foldericon.png")]
			public var foldericon:Class;
			[Embed("com/assets/openfoldericon.png")]
			public var openfoldericon:Class;

			[Bindable]
			public var loadingxml:XMLList;





			private function initTreeData():void
			{
				var cm:FunService=new FunService();
				cm.getNodebyfunid(this);

			}

			private function tree_itemClick(evt:ListEvent):void
			{
				var cm:FunService=new FunService();
				var selectedNode:XML=treeSiteList.selectedItem as XML;
				var item:Object=AsyncTree(evt.currentTarget).selectedItem;

				if (treeSiteList.dataDescriptor.isBranch(item))
				{
					if (selectedNode.@isclicked == "false")
					{
						treeSiteList.setItemIcon(selectedNode, foldericon, loadingIcon);

						cm.getNodebyfunid2(this, selectedNode.@id, selectedNode);
						treeSiteList.expandItem(item, true, true);
					}else
					treeSiteList.expandItem(item, !treeSiteList.isItemOpen(item), true);

				}
			}

			private function tree_itemOpening(evt:TreeEvent):void
			{
				treeSiteList.selectedItem=evt.item;
				var cm:FunService=new FunService();
				var selectedNode:XML=treeSiteList.selectedItem as XML;
				var item:Object=AsyncTree(evt.currentTarget).selectedItem;

				if (treeSiteList.dataDescriptor.isBranch(item))
				{
					if (selectedNode.@isclicked == "false")
					{
						treeSiteList.setItemIcon(selectedNode, foldericon, loadingIcon);

						cm.getNodebyfunid2(this, selectedNode.@id, selectedNode);

					}
				//treeSiteList.expandItem(item, !treeSiteList.isItemOpen(item), true);

				}
			}

//			private function setView(ev:TreeEvent):void
//
//			{
//				//	Alert.show("123");
//				//	var item:XML=AsyncTree(event.currentTarget).selectedItem as XML;
//
//				treeSiteList.selectedItem=ev.item;
//				var cm:FunService=new FunService();
//				var selectedNode:XML=treeSiteList.selectedItem as XML;
//				var item:Object=AsyncTree(ev.currentTarget).selectedItem;
//
//				if (treeSiteList.dataDescriptor.isBranch(item))
//				{
//					if (selectedNode.@isclicked == "false")
//					{
//
//						treeSiteList.setItemIcon(selectedNode, foldericon, loadingIcon);
//
//						cm.getNodebyfunid2(this, selectedNode.@id, selectedNode);
//
//					}
//						//treeSiteList.expandItem(item, !treeSiteList.isItemOpen(item), true);
//				}
//
//			}
		]]>
	</mx:Script>
	<mx:Canvas width="100%"
			   height="450">

		<mx:VBox x="20"
				 y="20">
			<lns:AsyncTree id="treeSiteList"
						   x="20"
						   dataProvider="{loadingxml}"
						   y="10"
						   height="400"
						   width="394"
						   labelField="@label" 
						   itemClick="tree_itemClick(event);"
						   itemOpening="tree_itemOpening(event);"
						  >
			</lns:AsyncTree>
		</mx:VBox>

	</mx:Canvas>
</mx:Application>



AsyncTree文件的内容
package com.render
{
	import mx.controls.Tree;
	import mx.events.TreeEvent;
	import flash.events.Event;
	

	public class AsyncTree extends Tree
	{
		public function AsyncTree()
		{
			super();
		}

		
	}
}


FunService.cs部分代码
public function getNodebyfunid(tree:delayLoadingTree2):void
		{
			loadingtree=tree;
			var getCataLogRemoteObject:RemoteObject=new RemoteObject("FunService");
			getCataLogRemoteObject.addEventListener(FaultEvent.FAULT, getNodebyfunidFault);
			getCataLogRemoteObject.addEventListener(ResultEvent.RESULT, getNodebyfunidResult);
			getCataLogRemoteObject.getNodebyfunid("ITS");

		}

		public function getNodebyfunidFault(event:FaultEvent):void
		{
			Alert.show(event.fault.message);
		}

		public function getNodebyfunidResult(event:ResultEvent):void
		{
			//curTree
			var treexml:XMLList=new XMLList(String(event.result));

			loadingtree.loadingxml=treexml;
			//	showList(treexml);
		/* loadingtree.labelField="@label"; */

		}

		public function getNodebyfunid2(tree:delayLoadingTree2, id:String, repxml:XML):void
		{
			loadingtree=tree;
			xml=repxml;
		//	this.item=item;
			var getCataLogRemoteObject:RemoteObject=new RemoteObject("FunService");
			getCataLogRemoteObject.addEventListener(FaultEvent.FAULT, getNodebyfunidFault2);
			getCataLogRemoteObject.addEventListener(ResultEvent.RESULT, getNodebyfunidResult2);
			getCataLogRemoteObject.getNodebyfunid(id);

		}

		public function getNodebyfunidFault2(event:FaultEvent):void
		{
			Alert.show(event.fault.message);
		}

		public function getNodebyfunidResult2(event:ResultEvent):void
		{
			//curTree
			//var treexml:XMLList=new XMLList(String(event.result));

			//	Alert.show(new XMLList(event.result));
			//showList(new XMLList(String(event.result)));
			xml.@isclicked="true";
			var newxml:XML=xml.appendChild(new XMLList(event.result));
			//还原图标
			loadingtree.treeSiteList.setItemIcon(xml, loadingtree.foldericon, loadingtree.openfoldericon);
			//
			loadingtree.treeSiteList.expandItem(xml, false, true);
			loadingtree.treeSiteList.expandItem(xml, true, true);
//	Alert.show(newxml);

			//	var treexml:XMLList=new XMLList(xmlString);
			//	loadingtree.labelField="@label";

		}

FunServiceImpl.java部分代码,目的是获得下一级节点
public String getNodebyfunid(String funid) {
		String FlexTreeNodeString = "";
		String isBranch = "false";
		allFuns = this.findFunsByUser("32672");
		FunctionDTO[] fs = this.findFunByParentID(funid);
		if (fs != null) {
			for (int j = 0; j < fs.length; j++) {

				if (ishasChild(fs[j].getFuncid()) == true) {
					isBranch = "true";
				}
				FlexTreeNodeString = FlexTreeNodeString + "<Node id='"
						+ fs[j].getFuncid() + "'" + "isBranch ='" + isBranch
						+ "'" + " label=" + "'" + fs[j].getFuncname()
						+ "' isclicked='false'>";
				FlexTreeNodeString = FlexTreeNodeString + "</Node>\n";
			}

		}
		return FlexTreeNodeString;
	}

分享到:
评论
1 楼 wukele 2011-06-11  
delayLoadingTree2 这个是什么对象类

相关推荐

    Flex Tree 异步加载数据及分屏小工具

    综上所述,"Flex Tree 异步加载数据及分屏小工具"涉及的技术点主要包括Flex组件的使用、异步加载机制、数据提供者管理、事件驱动编程、分页策略以及源码分析和优化。这些知识对于构建高效、响应式的Flex应用程序至关...

    Flex Blazeds入门教程

    ### Flex Blazeds入门教程详解 #### 一、引言 Flex Blazeds入门教程,由刘铭朝撰写于2008年3月21日,旨在解决开发者在搭建Flex与LCDS(Flex Data Services)工程时遇到的常见问题。这篇教程不仅详细介绍了创建项目...

    Flex blazeds-spring

    Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring

    flex blazeDS开发使用手册,对于集成blaze开发很有用处。

    Flex BlazeDS开发使用手册是Adobe官方提供的一份详尽指南,旨在帮助开发者高效地集成BlazeDS框架到Flex应用程序中。BlazeDS是一款开源的服务器端技术,它为富互联网应用(RIA)提供了数据推送、消息传递和Remoting...

    flex blazeds的入门例子

    4. BlazeDS配置:可能包含服务定义和服务端点配置,用于设置Flex与Java服务器的通信。 学习这个入门示例,你需要了解以下几个关键知识点: 1. Flex编程:包括MXML和ActionScript的基础,以及如何创建用户界面组件...

    Flex BlazeDS

    flex blazeds实现服务器向客户端推送数据 环境Eclipse Java EE IDE 服务apache-tomcat-7.0.23-windows-x86 blazeds采用的是blazeds4.0.0.14931 (附件中包含 apache-tomcat-7.0.23 + 源码 + 说明文档)

    flex blazeds turnkey包分卷一

    flex blazeds turnkey包flex blazeds turnkey包

    Flex BlazeDS java 项目

    Flex BlazeDS Java 项目是一个基于Adobe Flex前端和Java后端技术构建的应用程序示例。它展示了如何使用BlazeDS作为中间层,实现Flex客户端与Java服务器之间的数据通信和远程调用服务。BlazeDS是Adobe官方提供的开源...

    flex + blazeDs

    标题中的“Flex + BlazeDS”指的是使用Adobe Flex作为前端开发框架,与BlazeDS作为后端数据服务的集成技术。Flex是一种开源的、基于ActionScript的框架,用于构建富互联网应用程序(RIA),它允许开发者创建具有动态...

    flex BlazeDS java整合过程中犯的错误

    flex BlazeDS java整合过程中犯的错误

    flex+blazeDS配置指南

    《Flex+BlazeDS配置详解》 在现代Web开发中,富互联网应用程序(RIA)的交互性和用户体验成为了关键。Flex作为Adobe开发的RIA框架,以其强大的图形界面设计和丰富的交互功能受到广泛欢迎。而BlazeDS是Adobe提供的一...

    Flex Spring JAVA BLAZEDS整合

    【Flex Spring JAVA BLAZEDS整合】是一种技术实践,它将Adobe Flex的前端展示层与Spring框架的后端业务逻辑层紧密结合,利用BlazeDS作为中间件进行数据传输。Flex作为一个强大的RIA(富互联网应用程序)开发平台,常...

    flex blazeds spring集成

    Flex Blazeds Spring集成是将Adobe的Flex前端技术与Spring框架后端服务相结合的一种开发模式。这个DEMO展示了如何在Flex客户端应用中利用Spring框架来管理和服务通信,从而实现更高效、灵活的分布式应用程序。 Flex...

    Flex + blazeds + Java推送

    Flex + blazeds + Java推送Demo 本例实现由Flex一端客户端发送消息, 然后由Java端在发布到所有订阅的其它Flex端. 里面有说明与源码, 还有一个直接放到Tomcat里面的直接发布的项目 小编使用工具 eclipse3.5 flex sdk...

    flex 工具 blazeds

    BlazeDS是Flex的配套服务器组件,它允许Flex应用通过AMF(Action Message Format)与Java应用程序进行高效的数据通信。BlazeDS不仅支持远程方法调用(RPC),还支持发布和订阅消息模型,使得实时数据同步成为可能。...

    Flex BlazeDS通信

    Flex BlazeDS通信是一种在富互联网应用程序(RIA)中实现客户端与服务器端数据交互的技术。它主要涉及Adobe Flex作为前端开发工具,以及BlazeDS作为后端数据服务的中间件。BlazeDS是Adobe官方推出的一个开源项目,...

    Flex Blazeds java实现企业级Web系统页面【源码】

    Flex Blazeds与Java的集成在企业级Web系统开发中扮演着重要角色,它提供了一种高效、灵活的方式来构建富互联网应用程序(RIAs)。Blazeds是Adobe推出的一个开源项目,它作为Flex与服务器端技术之间的桥梁,尤其与...

    Flex BlazeDs 推数据生成lineChart实例

    Flex BlazeDs推数据生成lineChart实例是一个典型的前端与后端实时通信的应用场景,它结合了Adobe Flex技术用于前端用户界面的构建,BlazeDS作为数据推送服务,以及使用lineChart组件来展示动态更新的数据。...

    JAVA通过BlazeDS与FLEX通信

    JAVA通过BlazeDS与FLEX通信 BlazeDS.zip java项目,使用MYECLIPSE导入 FlexJavaServer.fxp FLEX项目,使用FLASHBUILDER4.5导入

Global site tag (gtag.js) - Google Analytics