flex与js交互回调,解析JSON数据实现统计,并自动刷新

<?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" width="100%" height="100%"
xmlns:Class="Class.*"
xmlns:amcharts="http://www.amcharts.com/com_internal"
creationComplete="application1_creationCompleteHandler(event)">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[

import com.adobe.serialization.json.*;
import com.adobe.serialization.json.JSON;//corelib.swc包

import flash.filters.DropShadowFilter;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.core.FlexGlobals;
import mx.events.FlexEvent;
import mx.rpc.events.ResultEvent;


private var NewtempAC:ArrayCollection;
[Bindable]
private var shadow:DropShadowFilter = new DropShadowFilter(2,45,0,0.5);


//html传参数据
[Bindable]
public var regionTitle:String;
[Bindable]
public var chartType:String;
[Bindable]
public var regionLabel:String;
public var ac:ArrayCollection;
public var Newac:ArrayCollection;
public var tempAC:ArrayCollection;
[Bindable]
private var actool:ArrayCollection;

protected function application1_creationCompleteHandler(event:FlexEvent):void
{

ExternalInterface.addCallback("flexFunctionAlias",asFunc);
var params:String = ExternalInterface.call("sendCommand");
// var params:String =new String('{"y_axis":{"min":0,"colour":"#8D9CAA","grid-colour":"#E2E2E2","max":98,"steps":9,"offset":0},"title":{"text":"test[46.0.98.6] title","style":"font-size:20px; color: #FF00FF;"},"bg_colour":"#FFFFFF","is_decimal_separator_comma":0,"elements":[{"colour":"#F9B73C","text":"单位:无单位","values":[{"colour":"#AF420E","dot-size":3,"value":73,"type":"hollow-dot","tip":"2012年09月07日,00:00:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":75,"type":"hollow-dot","tip":"2012年09月07日,00:01:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":55,"type":"hollow-dot","tip":"2012年09月07日,00:02:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":64,"type":"hollow-dot","tip":"2012年09月07日,00:03:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":93,"type":"hollow-dot","tip":"2012年09月07日,00:04:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":76,"type":"hollow-dot","tip":"2012年09月07日,00:05:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":90,"type":"hollow-dot","tip":"2012年09月07日,00:06:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":48,"type":"hollow-dot","tip":"2012年09月07日,00:07:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":30,"type":"hollow-dot","tip":"2012年09月07日,00:08:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":93,"type":"hollow-dot","tip":"2012年09月07日,00:09:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":36,"type":"hollow-dot","tip":"2012年09月07日,00:10:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":85,"type":"hollow-dot","tip":"2012年09月07日,00:11:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":35,"type":"hollow-dot","tip":"2012年09月07日,00:12:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":39,"type":"hollow-dot","tip":"2012年09月07日,00:13:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":50,"type":"hollow-dot","tip":"2012年09月07日,00:14:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":71,"type":"hollow-dot","tip":"2012年09月07日,00:15:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":11,"type":"hollow-dot","tip":"2012年09月07日,00:16:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":30,"type":"hollow-dot","tip":"2012年09月07日,00:17:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":47,"type":"hollow-dot","tip":"2012年09月07日,00:18:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":34,"type":"hollow-dot","tip":"2012年09月07日,00:19:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":98,"type":"hollow-dot","tip":"2012年09月07日,00:20:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":83,"type":"hollow-dot","tip":"2012年09月07日,00:21:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":7,"type":"hollow-dot","tip":"2012年09月07日,00:22:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":40,"type":"hollow-dot","tip":"2012年09月07日,00:23:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":84,"type":"hollow-dot","tip":"2012年09月07日,00:24:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":29,"type":"hollow-dot","tip":"2012年09月07日,00:25:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":44,"type":"hollow-dot","tip":"2012年09月07日,00:26:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":13,"type":"hollow-dot","tip":"2012年09月07日,00:27:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":47,"type":"hollow-dot","tip":"2012年09月07日,00:28:00<br>#val#"},{"colour":"#AF420E","dot-size":3,"value":76,"type":"hollow-dot","tip":"2012年09月07日,00:29:00<br>#val#"}],"on-show":{"cascade":0.6,"delay":0.5,"type":"shrink-in"},"font-size":12,"alpha":0.35,"type":"line"}]}');
var container:Object = (JSON.decode(params) as Object);
tempAC= new ArrayCollection(container.elements[0].values);
ac=new ArrayCollection();
for each(var elements:Object in tempAC){
var o:Object = new Object();
o["value"] = elements.value;
o["n"]=elements.tip;
o["name"] =elements.tip.split(",")[1].split("<")[0];
o["nam"]=elements.tip.split(",")[0]+elements.tip.split(",")[1].split("<")[0];
ac.addItem(o);
}
actool=ac;
//title
regionTitle=container.elements[0].text;

//label
regionLabel=container.title.text;

vs.selectedChild=vs3;
}

public function asFunc():String {
var Newparams:String = ExternalInterface.call("sendCommand");
var Newcontainer:Object = (JSON.decode(Newparams) as Object);
NewtempAC= new ArrayCollection(Newcontainer.elements[0].values);
Newac=new ArrayCollection();
for each(var elements:Object in NewtempAC){
var o:Object = new Object();
o["value"] = elements.value;
o["n"]=elements.tip;
o["name"] =elements.tip.split(",")[1].split("<")[0];
o["nam"]=elements.tip.split(",")[0]+elements.tip.split(",")[1].split("<")[0];
Newac.addItem(o);
}
actool= Newac;
return Newparams;
}

]]>
</fx:Script>
<s:VGroup width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<s:Label text="{regionLabel}"
fontFamily="宋体" fontSize="20" fontWeight="bold" color="#666666"/>
<s:VGroup width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
<amcharts:AmLegend
color="0x000000"
x="45"
y="10"
switchable="false"
dataProvider="{chartLine}"
width="100%"
marginRight="20"
marginLeft="40"
markerType="line"
textClickEnabled="false"
marginBottom="5"/>

<Class:AmSerialChart
id="chartLine" zoomOutText="显示全部"
width="100%" startDuration="1"
height="100%" dataProvider="{actool}"
categoryField="name" angle="30" depth3D="20">

<Class:valueAxes>
<amcharts:ValueAxis dashLength="5"/>
</Class:valueAxes>

<Class:graphs>
<amcharts:AmGraph id="g3" lineColor="#FF6600" valueField="value" title="{regionTitle}"
type="line" dashLength="3" lineThickness="2" bullet="round" filters="{[shadow]}" balloonText="[[nam]] : [[value]]"/>
</Class:graphs>

<Class:categoryAxis>
<amcharts:CategoryAxis gridPosition="start" dashLength="5" id="catAxis" parseDates="false"/>
</Class:categoryAxis>

<Class:chartCursor>
<amcharts:ChartCursor cursorAlpha=".5"/>
</Class:chartCursor>

<Class:chartScrollbar>
<amcharts:ChartScrollbar
hideResizeGrips="false"
backgroundAlpha="0.1" graph="{g3}" />
</Class:chartScrollbar>
</Class:AmSerialChart>
</s:VGroup>


</s:Application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值