当前位置:编程学习 > 网站相关 >>

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代码 
trace("URL参数=>"); 
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代码 
HTML参数=> 
{"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的属性。
 
 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,