2012-03-06 35 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