as3 flash 参数获得(root.loaderInfo.parameters 用法)
用AS2时,可以直接把参数加在flash的尾部,如:demo.swf?u1=good&u2=bad
在flash里就默认u1,u2为根变量。可以使用_root.u1和_root.u2来得到值
但到了AS3里面这样做已经不行了。
要用到flash.display.loaderInfo类的parameters属性,返回的是一个参数对象
使用方法:
例如在文档类中定义var param:Object = root.loaderInfo.parameters;
如果取u1的值,可以用param["u1"],同样u2的值:param["u2"]
做了个小例子,document class如下:
程序代码
package {
import flash.display.Sprite;
import flash.display.Stage;
import flash.display.StageScaleMode;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class LoaderInfoDemo extends Sprite {
public function LoaderInfoDemo(){
stage.scaleMode = StageScaleMode.NO_SCALE;
var out_txt:TextField = createText();
out_txt.border = true;
out_txt.borderColor = 0xFF6600;
out_txt.y = 20;
addChild(out_txt);
var info_txt:TextField = createText();
info_txt.text = "修改loaderInfoDemo.swf?msg=xxx中的xxx值,然后回车";
info_txt.autoSize = TextFieldAutoSize.LEFT;
addChild(info_txt);
var param:Object = root.loaderInfo.parameters;
if(param["msg"]!=null){
out_txt.text = param["msg"];
trace("value:"+param["msg"]);
}else{
out_txt.text = "null";
trace("value:null");
}
}
private function createText():TextField{
var tmp:TextField = new TextField();
tmp.selectable = false;
tmp.width = 100;
tmp.height = 20;
return tmp;
}
}
}