AS3 获取SWF参数
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如下:
程序代码
在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;
}
}
}
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;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)