加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex 接收外部参数

发布时间:2020-12-15 04:47:45 所属栏目:百科 来源:网络整理
导读:(一)使用flashVars传递 1 更改index.template.html第43行为: ? ?写道 var flashvars = {"name":"swflash"}; ? ? 2 Application中接收参数,代码如下: ? ?写道 import mx.events.FlexEvent; import mx.core.FlexGlobals; import com.adobe.serialization.

(一)使用flashVars传递

1 更改index.template.html第43行为:

?

?写道

var flashvars = {"name":"swflash"};

?

?

2 Application中接收参数,代码如下:

?

?写道

import mx.events.FlexEvent;
import mx.core.FlexGlobals;
import com.adobe.serialization.json.JSON;

protected function creationCompleteHandler(event:FlexEvent):void
{
??? var app:Application =FlexGlobals.topLevelApplication as Application;
??? trace("外部参数=>");
??? trace(JSON.encode(app.parameters));
}

?

?

3 输出结果为:

?

?写道

外部参数=>
{"name":"swflash"}

?

?

(二)使用swf的URL进行传递

1 在swf的url上附带参数.

更改index.template.html第54行为:

?

?写道

"${swf}.swf?code=swflash","flashContent",

?

?

2 输出结果如下:

?

?写道

外部参数=>
{"code":"swflash","name":"swflash"}

?

?

3 对于URL参数,还可以使用下面代码获取

?

Java代码 ?

  1. trace("URL参数=>");??
  2. trace(app.url);??

?

?输出结果如下:

?

?写道

URL参数=>
file://E:sunwayworkspaceflashxxxbin-debugxxx.swf?code=swflash

?

?

?

(三)使用html的URL

1 application中使用BrowserManager

?

?写道

import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.utils.URLUtil;

var bm:IBrowserManager = BrowserManager.getInstance();
bm.init();//注意,必须初始化一下,否则为空
var param:Object = URLUtil.stringToObject(bm.fragment,"&");
trace("HTML参数=>");
trace(JSON.encode(param));

?

?

2访问路径如下:使用HTML的URL链接,例如:http://192.168.1.252/flex/XXX.html#age=20&sex=1

注意使用的是#号,而不是通常的

输出结果如下:

?

?

Java代码 ?

  1. HTML参数=>??
  2. {"age":20,"sex":1}??

?

?

(四)代码汇总如下:

?

?写道

import com.adobe.serialization.json.JSON;
import mx.core.FlexGlobals;
import mx.events.FlexEvent;
import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.utils.URLUtil;

protected function creationCompleteHandler(event:FlexEvent):void
{
??? var app:Application =FlexGlobals.topLevelApplication as Application;
??? trace("外部参数=>");
??? trace(JSON.encode(app.parameters));
??? trace("URL参数=>");
??? trace(app.url);
??? var bm:IBrowserManager =BrowserManager.getInstance();
??? bm.init();//注意,必须初始化一下,否则为空
??? var param:Object =URLUtil.stringToObject(bm.fragment,"&");
??? trace("HTML参数=>");
??? trace(JSON.encode(param));
}

?? ?详细请下载附件,其中项目使用了as3corelib.swc包,请自己搜索或者联系我。

?

注1:

swfobject.embedSWF(swfUrl,id,width,height,version,expressInstallSwfurl,flashvars,params,attributes)有5个必须的参数和4个可选的参数:

?? ?1. swfUrl(String,必须的)指定SWF的URL。

?? ?2. id(String,必须的)指定将会被Flash内容替换的HTML元素(包含你的替换内容)的id。

?? ?3. width(String,必须的)指定SWF的宽。

?? ?4. height(String,必须的)指定SWF的高。

?? ?5. version(String,必须的)指定你发布的SWF对应的Flash Player版本(格式为:major.minor.release)。

?? ?6. expressInstallSwfurl(String,可选的)指定express install SWF的URL并激活Adobe express install [http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75 ]。

?? ?7. flashvars(String,可选的)用name:value对指定你的flashvars。

?? ?8. params(String,可选的)用name:value对指定你的嵌套object元素的params。

?? ?9. attributes(String,可选的)用name:value对指定object的属性。

?

注2:对于flex3,flashVars参考链接:

http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_3.html

http://livedocs.adobe.com/flex/3/html/help.html?content=deep_linking_5.html#245869:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读