2012-01-26 9 views
2

私は値を読み込みます。しかし、それは動作していません。ここに私のテストコードです(最初のブロックはhttp://blogs.adobe.com/pdehaan/2006/07/using_flashvars_with_actionscr.htmlから取られている):取得SWFブールパラメータ

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

そしてイライラこれはトレースされた2行です:

single = true 
false, false, false, false 

は私が間違って何をしているのですか?

+0

ああ、キャストの問題です。ブール値の代わりに上記のコードの一部をStringに置き換えると、トレースはすべて「真」になります。ですから、私の質問はまあまあであるかもしれません:ActionScriptでBoolean:trueにパラメータ値String: "true"をキャストするにはどうしたらいいですか? – dumbledad

+0

変数の型を取得したい場合は、この 'trace(typeof(isSingle));を試してください – mgraph

+0

これは、この種の問題をデバッグするのに役立つActionScriptです。 – dumbledad

答えて

6

ActionScriptで空ではなくnullではありません。文字列はブール値trueにキャストされます。

var singleStr:String = this.loaderInfo.parameters.single; 
var singleBool:Boolean = singleStr == "true"; 
+0

その2行目は実際にキャストされたものではありませんが、うまくいきます。ありがとう。 – dumbledad

関連する問題