在flex4.7中获取js传递过来的json并解析
2014-09-19 15:37
381 查看
看上去简简单单的问题,前前后后用了我一两天的时间,中间一些本来调通的问题,因为没有保存又重新Debug了很长时间。
首先,我要实现的目的是从js中传递json参数到flex中,然后在flex要对传递过来的参数进行解析。
在html页面中,我们需要这样写
在网页中,主要注意的是参数的格式,因为这是本文的重点。
在flex中(我使用的是4.7),也就是我们用于生成swf的.mxml文件中,主要代码如下
上面的代码在Flash Builder中编辑后运行,运行结果:
首先,我要实现的目的是从js中传递json参数到flex中,然后在flex要对传递过来的参数进行解析。
在html页面中,我们需要这样写
<script type="text/javascript"> var swfVersionStr = "${version_major}.${version_minor}.${version_revision}";//swf要求的Flash版本号 var xiSwfUrlStr = "${expressInstallSwf}";//快捷安装的swf //参数传递,注意格式为{params1:"",params2:""}出现其他格式时会被解析成Object,然后怎么都得不到想要的结果, //如果有人可以从传递的Object得到要的值,希望可以给小弟指点一下 var flashvars = {num:"1",json:"[{'summoney':'666310.09','sumcount':'652','sumdate':'2014-08-05'},{'summoney':'0.19','sumcount':'9','sumdate':'2014-08-08'}]" }; //当前swf在网页中显示的样式,包括背景等 var params = {}; params.quality = "high"; params.bgcolor = "${bgcolor}"; params.allowscriptaccess = "sameDomain"; params.allowfullscreen = "true"; //当前swf的属性,包括id,name,对齐方式等 var attributes = {}; attributes.id = "${application}"; attributes.name = "${application}"; attributes.align = "middle"; //调用swfobject.js中的swf加载的方法,参数列表 //(1、swf路径;2、在网页中显示的组件id-必须存在否则不显示; //3、swf所占的宽度,单位默认为像素px,直接给定数值即可;4、swf所占的高度,单位同宽度; //5、swf要求的Flash版本号;6、快捷安装显示的swf;7、传递给Flash的参数;8、swf的样式; //9、swf的基本属性) swfobject.embedSWF( "${swf}.swf", "flashContent", "${width}", "${height}", swfVersionStr, xiSwfUrlStr, flashvars, params, attributes); swfobject.createCSS("#flashContent", "display:block;text-align:left;"); </script> <div id="flashContent"><!--当没有安装Flashplayer或者版本过低时,到官网下载安装--> <p> To view this page ensure that Adobe Flash Player version ${version_major}.${version_minor}.${version_revision} or greater is installed. </p> <script type="text/javascript"> var pageHost = ((document.location.protocol == "https:") ? "https://" : "http://"); document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='" + pageHost + "www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player' /></a>" ); </script> </div>
在网页中,主要注意的是参数的格式,因为这是本文的重点。
在flex中(我使用的是4.7),也就是我们用于生成swf的.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" minWidth="100%" minHeight="100%"> <fx:Script> <![CDATA[ public var arrList:Array; private function onCreationComplete() : void { var parameters : Object = this.parameters;//获得参数(还可以用FlexGlobals.topLevelApplication.parameters),旧版本用Application.application.parameters获取 var str:String = parameters.json;//参数列表中json参数 var regE:RegExp=new RegExp("'", "g");//需要将"\'"转换为"\""否则会提示json串错误 var array:Array=(JSON.parse(str.replace(regE,'"')) as Array); var para:String = "接收数据:\nnum="+parameters.num+";\njson="; for each(var object:Object in array){ para += "日期:"+object["sumdate"]+";金额:"; para += object["summoney"]+";笔数:"; para += object["sumcount"]+";"; } lblResult.text = para;//在label中显示数据 } ]]> </fx:Script> <s:HGroup> <s:Label id="lblResult"/> </s:HGroup> </s:Application>
上面的代码在Flash Builder中编辑后运行,运行结果:
相关文章推荐
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
- js获取网页url拼接传递过来的参数
- JS获取Url传递过来的参数
- js 将json字符串转换为json对象的方法解析 作者: 字体:[增加 减小] 类型:转载 将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而J
- js如何获取另一个页面传递过来的值?
- js解析json,js转换json成map,获取map的key,value
- js解析json js获取json里面的某个节点的数据 js解析json数据
- html中通过js获取接口JSON格式数据解析以及跨域问题
- 获取js 文件传递的参数并使用json2进行json数据转换
- html中通过js获取接口JSON格式数据解析以及跨域问题
- 59-002-1 前台如何获取ajax传递过来的json数据.
- js如何获取另一个页面传递过来的值?
- Js前端传递json数组至服务器端并解析的实现。
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中