Flex页面间三种传值方式

来源:互联网 发布:光束灯编程 编辑:程序博客网 时间:2024/05/29 03:14
 

1.sharedObject

var url:String="emailPreview.html";
var so:SharedObject=SharedObject.getLocal("emailPreview","/");
so.clear();
so.data.emailSubject=emailSubject;                                                                                                     so.data.type="email";
so.flush();
var request:URLRequest=new URLRequest(url);
navigateToURL(request,"_blank");

接收传值页面:

    var so:SharedObject=SharedObject.getLocal("email","/");
     emailSubject=so.data.emailSubject;
     emailType=so.data.emailType;

2.url带参数

var url:URLRequest=new URLRequest("monitorHis.html?screenName="+screenName);
navigateToURL(url, "_blank");

接收参数页面:

var params:Object={};
var params:Object={};
params=getOuterParam();
screenName=params.screenName;

public function getOuterParam():Object
{
var params:Object={};
var query:String=ExternalInterface.call("window.location.search.substring", 1);
if (query)
{
   var pairs:Array=query.split("&");
   for (var i:uint=0; i < pairs.length; i++)
   {
    var pos:int=pairs[i].indexOf("=");
    if (pos != -1)
    {
     var argname:String=pairs[i].substring(0, pos);
     var value:String=pairs[i].substring(pos + 1);
     params[argname]=value;
    }
   }
}
return params;
}

3.页面间直接传值(页面间存在嵌套或父子关系)

传值页面comTrendComp引用一个自定义组件menuInfoCom

var list:menuInfoCom=new menuInfoCom();
list.type="test";(list组件中包含一个public类型的变量type)

接收值页面可以直接引用type。若想引用父页面public类型的变量

public var par:comTrendComp;
par=this.parentApplication as comTrendComp; //获得父对象