2012-03-06 27 views
0

您可以为影片提供flashvars。检查闪存/ actionscript中的大小写不敏感参数

在ActionScript中,您可以像这样访问他们:

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

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

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

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

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

回答

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

} 
+0

现在我看到整个帖子帖子,我注意到@vulkanino做同样的事情,虽然他的代码只返回字符串,并且只限于String类型的参数。 – 2012-03-06 11:02:47

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

你必须比扫描所有键在没有其他选择参数对象。

+0

谢谢,但问题是,在paramObj中的参数可能在任何情况下,这只会匹配小写名称。 – clamp 2012-03-06 10:07:04

+0

你是对的,我正在改变代码。 – vulkanino 2012-03-06 10:12:15