考虑到不能在动态函数中使用“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;
}
问题:
this["变量名"] 在静态函数中不起作用
最佳答案
不确定您想要“this”引用什么,但假设您有一个名为“Foo”的类,其中包含静态函数,只需使用 Foo[str];
或者,创建一个静态本地对象:
private static var _this:Object = {//your dynamic stuff}
然后使用“_this”。
关于flash - 静态函数中的动态变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8512400/