检查不区分大小写的参数

时间:2012-03-06 09:40:46

标签: flash actionscript

在flash / actionscript中你可以为电影提供flashvars。

在actionscript中你可以像这样访问它们:

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;

然后我可以检查这样的参数:

if (paramObj["somekey"] == someValue)
{
}

现在我想让这个检查不区分大小写。所以它匹配SomeKey或soMekEY等。

这样做的最佳方式是什么?

2 个答案:

答案 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;
    }

}
相关问题