静态函数中的动态变量名称

Kev*_*ann 2 apache-flex flash actionscript-3 flex4 flex4.5

有没有什么方法可以在静态函数中包含动态变量,因为你不能在动态函数中使用"this".

我想做什么:

public static function convertToDynamicString(pString:String):String
{
    if(pString == "" || pString == null) return "";
    var re:RegExp = /(\{\w+\})/;
    var results:Array = pString.split(re);
    var dynamicString:String = "";
    for each(var pWord:String in results)
    {
        if(pWord.substr(0, 1) == "{") dynamicString += this[pWord.substring(1, (pWord.length - 1))];    
        else dynamicString += pWord;
    }
    return dynamicString;
}
Run Code Online (Sandbox Code Playgroud)

问题:

此["变量名称"]在静态函数中不起作用

Gle*_*enn 5

不确定你想要"this"引用什么,但假设你有一个名为"Foo"的类包含你的静态函数,只需使用 Foo[str];

或者,创建一个静态本地对象:

private static var _this:Object = {//your dynamic stuff}
Run Code Online (Sandbox Code Playgroud)

然后使用"_this".