在actionscript中你可以像这样访问它们:
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
然后我可以检查这样的参数:
if (paramObj["somekey"] == someValue)
{
}
现在我想让这个检查不区分大小写。所以它匹配SomeKey或soMekEY等。
这样做的最佳方式是什么?
答案 0 :(得分:2)
您可以创建一个公共(静态)方法,在给定参数名称的情况下获取参数,将参数名称转换为小写:
class Utility
{
public static GetParam(name:String): String
{
if ( paramObj == null )
paramObj = LoaderInfo(this.root.loaderInfo).parameters;
var lowerCasedName:String = name.toLowerCase();
for (keyStr in paramObj)
{
if ( keyStr.toLowerCase() == lowerCasedName )
return String(paramObj[keyStr]);
}
return null;
}
static var paramObj:Object = null;
}
除了扫描参数对象中的所有键外,别无选择。
答案 1 :(得分:1)
几年前,当我使用ColdFusion和Flash时,我遇到了这个问题,因为ColdFusion不区分大小写,而AS3不是。
所以这就是我为解决这个问题所做的工作。
public class ObjectUtil {
public static function getParameter(obj:Object, name:String):Object {
if(obj==null || name="" || name=="undefined") {
return null;
}
for (var key:String in obj) {
if(key.toLowerCase() == name.toLowerCase()) {
return obj[key]
}
}
return null;
}
}