as3 flash参数获得(root.loaderInfo.parameters用法) (

 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;
}
}
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注