flex4(flash builder)调用Amf远程对象动态添加LineChart图表线条
2011-02-10 17:19
495 查看
![](https://oscdn.geek-share.com/Uploads/Images/Content/201911/30/02876395e07697f6ce5817f26fc657c1.gif)
index.mxml
<?xml version="1.0" encoding="utf-8"?> <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" initialize="init();"> <fx:Script> <!--[CDATA[ import mx.charts.HitData; import mx.charts.events.ChartItemEvent; import mx.charts.series.LineSeries; import mx.charts.series.items.LineSeriesItem; import mx.charts.CategoryAxis; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.FlexEvent; import mx.messaging.Channel; import mx.messaging.ChannelSet; import mx.messaging.channels.AMFChannel; import mx.rpc.events.FaultEvent; import mx.rpc.events.InvokeEvent; import mx.rpc.events.ResultEvent; import mx.rpc.remoting.RemoteObject; private var myRemoteObject:RemoteObject; private var myChannelSet:ChannelSet private function init():void{ var amfChanel:AMFChannel = new AMFChannel("myAmfChannel","http://www.a.com/amfphp/gateway.php"); myChannelSet=new ChannelSet(); myChannelSet.addChannel(amfChanel); myRemoteObject = new RemoteObject(); myRemoteObject.channelSet = myChannelSet; myRemoteObject.destination = 'myApp'; myRemoteObject.source = "myApp"; myRemoteObject.addEventListener( FaultEvent.FAULT, gotError ); myRemoteObject.getData.addEventListener( ResultEvent.RESULT, getDatas ); } private function getDatas( result:ResultEvent ):void{ var newlines:ArrayCollection = new ArrayCollection(); newlines.source = result.result['lines'] as Array; for(var i:int =0 ;i<newlines.length;i++){ var a:LineSeries = new LineSeries(); a.yField = newlines[i]['en'].toString(); a.displayName = newlines[i]['cn'].toString(); a.setStyle("form", "curve"); linechart.series.push(a); } linechart.series = linechart.series; var lineca:CategoryAxis = new CategoryAxis(); lineca.categoryField = "Date"; linechart.horizontalAxis = lineca; linechart.dataProvider = result.result['datas']; } private function addLines( result:ResultEvent ):void { var newlines:ArrayCollection = new ArrayCollection(); newlines.source = result.result as Array; for(var i:int =0 ;i<newlines.length;i++){ var a:LineSeries = new LineSeries(); a.yField = newlines[i]['en'].toString(); a.displayName = newlines[i]['cn'].toString(); a.setStyle("form", "curve"); linechart.series.push(a); } linechart.series = linechart.series; var lineca:CategoryAxis = new CategoryAxis(); lineca.categoryField = "Date"; linechart.horizontalAxis = lineca; } private function gotError( fault:FaultEvent ):void { Alert.show( "错误信息 - " + fault.fault.faultString, "出错了" ); } private function showTipLine(hitData:HitData):String{ var lSI:LineSeriesItem = hitData.chartItem as LineSeriesItem; var lineSeries:LineSeries=LineSeries(hitData.chartItem.element); var str:String="<b>" + lineSeries.displayName + "</b>/n"; str+="日期:" + hitData.item.Date + "/n"; str+="次数:" + lSI.yValue; return str; } protected function linechart_creationCompleteHandler(event:FlexEvent):void { myRemoteObject.getData(); } ]]--> </fx:Script> <s:layout> <s:HorizontalLayout verticalAlign="top" horizontalAlign="center" /> </s:layout> <mx:LineChart id="linechart" color="0x323232" height="100%" dataTipFunction="showTipLine" showDataTips="true" creationComplete="linechart_creationCompleteHandler(event)" /> <mx:Legend dataProvider="{linechart}" color="0x323232"/> </s:Application>
myApp.php
<?php
class myApp {
public function __construct() {
}
public function getData() {
$r[] = array("Date"=>"21", "en1"=>"2000", "en2"=>"1500", "en3"=>"450");
$r[] = array("Date"=>"22", "en1"=>"2100", "en2"=>"2500", "en3"=>"1450");
$r[] = array("Date"=>"23", "en1"=>"2200", "en2"=>"3500", "en3"=>"2450");
$r[] = array("Date"=>"24", "en1"=>"2300", "en2"=>"4500", "en3"=>"450");
$n[] = array("en"=>"en1", "cn"=>"名称1");
$n[] = array("en"=>"en2", "cn"=>"名称2");
$n[] = array("en"=>"en3", "cn"=>"名称3");
$rr['lines'] = $n;
$rr['datas'] = $r;
return $rr;
}
}
?>
flash builder 调用PHP 生成 project.fml
<?xml version="1.0" encoding="UTF-8"?>
<model xmlns="http://ns.adobe.com/Fiber/1.0">
<annotation name="ActionScriptGeneration">
<item name="FullyQualifyReferences">true</item>
</annotation>
<service name="MyApp">
<annotation name="ActionScriptGeneration">
<item name="Source">myApp</item>
<item name="ServiceType">RemoteObject</item>
<item name="Package">services.myapp</item>
<item name="Endpoint">gateway.php</item>
<item name="Destination">myApp</item>
</annotation>
<annotation name="ServiceTypeGroup">
<item name="ServiceBackendType">PHP</item>
</annotation>
<annotation name="ServiceConfig">
<item name="PHP_RELATIVE_LOCATION">amfphp/services/myApp.php</item>
<item name="PHP_SERVER_ROOT">D:/flex/webtest</item>
<item name="DEFAULT_ENTITY_PACKAGE">valueObjects</item>
<item name="PHP_SERVICES_FOLDER">D:/flex/webtest/amfphp/services</item>
<item name="PHP_LOCATION">D:/flex/webtest/amfphp/services/myApp.php</item>
<item name="LINKED_FILE">myApp.php</item>
<item name="PHP_SERVER_ROOT_URL">http://www.a.com/</item>
<item name="ABSOLUTE_ENDPOINT">http://www.a.com/amfphp/gateway.php</item>
<item name="PHP_CLASS_NAME">myApp</item>
</annotation>
<function name="getData" return-type="opaque">
<annotation name="analyze group">
<item name="analyzed">false</item>
</annotation>
<annotation name="original signature">
<item name="returnType">opaque</item>
</annotation>
</function>
<function name="getLines" return-type="opaque">
<annotation name="analyze group">
<item name="analyzed">false</item>
</annotation>
<annotation name="original signature">
<item name="returnType">opaque</item>
</annotation>
</function>
</service>
</model>
flash builder 调用PHP 生成 as 文件省略了!
相关文章推荐
- 动态添加linechart图表线
- Android图表控件MPAndroidChart——曲线图LineChart(多条曲线)动态添加数据^a!HsMa0cWDc
- Flex3 LineChart动态添加数据源(动态添加线)
- flex4 动态获取对象属性,动态生成数据源,动态生成lineChart,清除数据。
- 用Spring动态调用RMI远程对象
- Flex LineChart 动态添加线(LineSeries)及颜色
- 向Flex中的LineChart中动态添加线
- Flex中如何利用seriesFilters属性,添加/删除LineChart图表曲线阴影
- Flex中如何利用seriesFilters属性,添加/删除LineChart图表曲线阴影
- Flex中如何利用seriesFilters属性,添加/删除LineChart图表曲线阴影
- flex4 动态获取对象属性,动态生成数据源,动态生成lineChart,清除数据。
- Flex LineChart 动态添加线(LineSeries)及颜色
- flex LineChart 图表动态增删Y轴实现。实现了动态增加但是Y轴删不干净
- (3)birt笔记 - chart图表相关-利用java script&java动态添加折线图表的折线数
- Flex中如何通过lineStroke样式改变LineChart图表线条颜色的例子
- Flex中如何利用seriesFilters属性,添加/删除LineChart图表曲线阴影
- 初识Devexpress ChartControl 之 动态添加stepline及TextAnnotation
- COM动态添加删除成员,类似JavaScript中调用的对象
- flex LineChart动态添加线
- jquery获取动态添加的标签对象