使用 split 拆分提取 Flashvars 参数
今天写了一个新接口,使用 split 拆分提取 Flashvars 参数。作为 web 程序的接口,使用这一方法传参比起用 XML 传参有其一定的优胜之处,避免了频繁读写外部文件,不过在阅读性和灵活性方面显然不及 XML 。
html 中的 Flashvars 参数格式如下,在 Flash 内调试时可暂将此字符串定义在 Flash 内。
my_variable=01|李炳辰|好想爱你,02|刘德华|独自去偷欢,03|S.H.E|五月天
AS 调用 html 中的参数:
//用“,”断开 my_variable,将其拆分为多个子字符串,然后以数组形式返回这些子字符串。
//任何时候,都可以用 _root 接 html 定义的参数名来调用该参数
var strToArrBig:Array = _root.my_variable.split(",");
//获取数组长度
var arrLength:Number = strToArrBig.length;
//以数组长度为上限定义循环,不要用“<=”否则会因为参数在 html 中,使 flash 调试时出现死循环
for(i=0; i < arrLength; i++){
//重新赋值 i,否则按钮点击事件中无法正确遍历
this["picImg_"+i].num = i;
this["picImg_"+i].onRelease = function(){
//用“|”断开 strToArrBig,将其拆分为多个子字符串,然后以数组形式返回这些子字符串。
var strToArrSmall:Array = strToArrBig[this.num].split("|");
//获取最终参值
getURL("Mvplay.aspx?MtvId="+strToArrSmall[0], "_blank");
//trace(strToArrSmall[1]);
//trace(strToArrSmall[2]);
}
}
为便于阅读,以下为不含注释的 AS:
var strToArrBig:Array = _root.my_variable.split(",");
var arrLength:Number = strToArrBig.length;
for(i=0; i < arrLength; i++){
this["picImg_"+i].num = i;
this["picImg_"+i].onRelease = function(){
var strToArrSmall:Array = strToArrBig[this.num].split("|");
getURL("Mvplay.aspx?MtvId="+strToArrSmall[0], "_blank");
//trace(strToArrSmall[1]);
//trace(strToArrSmall[2]);
}
}