Flex 接收外部参数

(一)使用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:\sunwayworkspace\flash\xxx\bin-debug\xxx.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:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值