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如下:
[code][color=#000000]package [color=#0000ff]{
[color=#800000]import [color=#0000a0]flash[color=#0000ff].[color=#0000a0]display[color=#0000ff].[color=#0000a0]Sprite[color=#0000ff];
[color=#800000]import [color=#0000a0]flash[color=#0000ff].[color=#0000a0]display[color=#0000ff].[color=#0000a0]Stage[color=#0000ff];
[color=#800000]import [color=#0000a0]flash[color=#0000ff].[color=#0000a0]display[color=#0000ff].[color=#0000a0]StageScaleMode[color=#0000ff];
[color=#800000]import [color=#0000a0]flash[color=#0000ff].[color=#008000]text[color=#0000ff].[color=#0000a0]TextField[color=#0000ff];
[color=#800000]import [color=#0000a0]flash[color=#0000ff].[color=#008000]text[color=#0000ff].[color=#0000a0]TextFieldAutoSize[color=#0000ff];
[color=#00a0c0]public class LoaderInfoDemo [color=#00a0c0]extends [color=#0000a0]Sprite [color=#0000ff]{
[color=#00a0c0]public [color=#800000]function LoaderInfoDemo[color=#0000ff]([color=#0000ff])[color=#0000ff]{
stage[color=#0000ff].[color=#008000]scaleMode [color=#0000ff]= [color=#0000a0]StageScaleMode[color=#0000ff].NO_SCALE[color=#0000ff];
[color=#800000]var out_txt[color=#0000ff]:[color=#0000a0]TextField [color=#0000ff]= createText[color=#0000ff]([color=#0000ff])[color=#0000ff];
out_txt[color=#0000ff].[color=#008000]border [color=#0000ff]= [color=#0000a0]true[color=#0000ff];
out_txt[color=#0000ff].[color=#008000]borderColor [color=#0000ff]= 0xFF6600[color=#0000ff];
out_txt[color=#0000ff].y [color=#0000ff]= 20[color=#0000ff];
[color=#5000a0]addChild[color=#0000ff](out_txt[color=#0000ff])[color=#0000ff];
[color=#800000]var info_txt[color=#0000ff]:[color=#0000a0]TextField [color=#0000ff]= createText[color=#0000ff]([color=#0000ff])[color=#0000ff];
info_txt[color=#0000ff].[color=#008000]text [color=#0000ff]= [color=#ff00ff]"修改loaderInfoDemo.swf?msg=xxx中的xxx值,然后回车"[color=#0000ff];
info_txt[color=#0000ff].[color=#008000]autoSize [color=#0000ff]= [color=#0000a0]TextFieldAutoSize[color=#0000ff].[color=#008000]LEFT[color=#0000ff];
[color=#5000a0]addChild[color=#0000ff](info_txt[color=#0000ff])[color=#0000ff];
[color=#800000]var param[color=#0000ff]:[color=#0000a0]Object [color=#0000ff]= root[color=#0000ff].loaderInfo[color=#0000ff].parameters[color=#0000ff];
[color=#800000]if[color=#0000ff](param[color=#0000ff][[color=#ff00ff]"msg"[color=#0000ff]][color=#0000ff]![color=#0000ff]=[color=#0000a0]null[color=#0000ff])[color=#0000ff]{
out_txt[color=#0000ff].[color=#008000]text [color=#0000ff]= param[color=#0000ff][[color=#ff00ff]"msg"[color=#0000ff]][color=#0000ff];
[color=#800000]trace[color=#0000ff]([color=#ff00ff]"value:"[color=#0000ff]+param[color=#0000ff][[color=#ff00ff]"msg"[color=#0000ff]][color=#0000ff])[color=#0000ff];
[color=#0000ff]}[color=#800000]else[color=#0000ff]{
out_txt[color=#0000ff].[color=#008000]text [color=#0000ff]= [color=#ff00ff]"null"[color=#0000ff];
[color=#800000]trace[color=#0000ff]([color=#ff00ff]"value:null"[color=#0000ff])[color=#0000ff];
[color=#0000ff]}
[color=#0000ff]}
[color=#00a0c0]private [color=#800000]function createText[color=#0000ff]([color=#0000ff])[color=#0000ff]:[color=#0000a0]TextField[color=#0000ff]{
[color=#800000]var tmp[color=#0000ff]:[color=#0000a0]TextField [color=#0000ff]= [color=#800000]new [color=#0000a0]TextField[color=#0000ff]([color=#0000ff])[color=#0000ff];
tmp[color=#0000ff].[color=#008000]selectable [color=#0000ff]= [color=#0000a0]false[color=#0000ff];
tmp[color=#0000ff].[color=#008000]width [color=#0000ff]= 100[color=#0000ff];
tmp[color=#0000ff].[color=#008000]height [color=#0000ff]= 20[color=#0000ff];
[color=#800000]return tmp[color=#0000ff];
[color=#0000ff]}
[color=#0000ff]}
[color=#0000ff]}[/code]
查看示例
下载文件 点击下载源文件

9 comments to AS3 获取SWF参数

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">