本人因项目需要,要做报表,项目初步用flex做,我还是应届生,连flex是什么东西都不知道,坑爹的,我花了大概一天的时间,完成flex和服务器的交互

首先要知道flex是做页面的美化的,flex与服务器交互有2个组件,一是httpservice 还有一个是remoteobject。

下面我把我的第一个flex程序交给大家,我会把我在做这个demo的时候碰到的问题向大家说


 

<?xml version="1.0"?>
<!-- Simple example to demonstrate the ColumnChart and BarChart controls. -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="callLater(init)">
	<fx:Script>
		<![CDATA[          
			
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import mx.graphics.codec.JPEGEncoder;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			[Bindable]
			private var medalsAC:ArrayCollection = new ArrayCollection();
			
			
			private function init():void{
				service.send();
			}
			
			//调用失败
			protected function service_faultHandler(event:FaultEvent):void
			{
				Alert.show("失败了:"+event.message,"提示");
			}
			
			//调用成功
			protected function service_resultHandler(event:ResultEvent):void
			{
			//一开始这边我直接把event.result as ArrayCollection一直不行,因为穿过来的就是全字符串了
                        //后来我就问了一个人就说把那边的 HTTPService添加返回的格式resultFormat="text"然后再在客户端解析
                        //通过json解析后,就跟jquery一样了list就会自动的变成数组,数组里面放的就是java的对象,这样就把对象添加到你的数据源
	
				var ob:Object=JSON.parse(event.result.toString());
				
				
				for (var i:int = 0; i < ob.length; i++)
				{
					medalsAC.addItem(ob[i]);
				}
				
				
				
			}
			
			
			
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<s:HTTPService id="service" 
					   url="http://localhost:8080/FlexAndJava_Server/textflex" 
					   useProxy="false" method="POST"
					   fault="service_faultHandler(event)" 
					   result="service_resultHandler(event)" resultFormat="text">//一开始我这边没有规定resultFormat,服务器写回的数据
		//是一个list里面有java对象	
		</s:HTTPService>
		
		
		<!-- Define custom colors for use as fills. -->
		<mx:SolidColor id="sc1" color="yellow" alpha=".8"/>
		<mx:SolidColor id="sc2" color="0xCCCCCC" alpha=".6"/>
		<mx:SolidColor id="sc3" color="0xFFCC66" alpha=".6"/>
		
		<!-- Define custom Strokes for the columns. -->
		<mx:SolidColorStroke id="s1" color="yellow" weight="2"/>
		<mx:SolidColorStroke id="s2" color="0xCCCCCC" weight="2"/>
		<mx:SolidColorStroke id="s3" color="0xFFCC66" weight="2"/>
	</fx:Declarations>
	
	<mx:Panel title="教学计划报表" 
			  height="100%" width="100%" layout="horizontal">
		<mx:ColumnChart id="column" 
						height="399" 
						width="45%" 
						paddingLeft="5" 
						paddingRight="5" 
						showDataTips="true" 
						dataProvider="{medalsAC}"
						>                
			<mx:horizontalAxis>
				<mx:CategoryAxis categoryField="country"/>
			</mx:horizontalAxis>
			
			<mx:series>
				<mx:ColumnSeries 
					xField="country" 
					yField="gold" 
					displayName="Gold"
					fill="{sc1}"
					stroke="{s1}"
					/>
				<mx:ColumnSeries 
					xField="country" 
					yField="silver" 
					displayName="Silver"
					fill="{sc2}"
					stroke="{s2}"
					/>
				<mx:ColumnSeries 
					xField="country" 
					yField="bronze" 
					displayName="Bronze"
					fill="{sc3}"
					stroke="{s3}"
					/>
			</mx:series>
		</mx:ColumnChart>
		
		<mx:Legend dataProvider="{column}"/>
		
		
		
	</mx:Panel>
</s:Application>


小弟虽然还有很多不懂,但是 改改还行,这个demo我也是网上给我找来的,我还是有很多不太理解,希望有人能解答为什么