2
我有一个SWF,我称之为作为获取SWF布尔参数
/SWFUploader/upload.swf?single=true
然后在ActionScript 3我在值读取。但它不起作用。这里是我的测试代码(第一个块是从http://blogs.adobe.com/pdehaan/2006/07/using_flashvars_with_actionscr.html取):
var keyStr:String;
var valueStr:String;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (keyStr in paramObj) {
valueStr = String(paramObj[keyStr]);
trace(keyStr + " = " + valueStr);
}
var isSingle:Boolean = this.loaderInfo.parameters.single as Boolean;
var isSingle1:Boolean = this.loaderInfo.parameters['single'] as Boolean;
var isSingle2:Boolean = LoaderInfo(this.root.loaderInfo).parameters['single'] as Boolean;
var isSingle3:Boolean = LoaderInfo(this.root.loaderInfo).parameters.single as Boolean;
trace(isSingle + ", " + isSingle1 + ", " + isSingle2 + ", " + isSingle3);
而令人沮丧的这是追踪所产生的两行:
single = true
false, false, false, false
我在做什么错?
啊,这是一个铸造问题。如果我用String代替了上面的一些代码而不是布尔值,那么所有的跟踪都是“真实的”。所以我的问题可能只是:如何在ActionScript中将参数值String:“true”转换为Boolean:true(为什么它不会发生)? – dumbledad
如果你想获得一个变量的类型,试试这个'trace(typeof(isSingle));' – mgraph
感谢mgraph,这是一个用于调试这类问题的有用的ActionScript。 – dumbledad