我清楚地失去了一些東西。AS3動態類的動態方法名稱
我需要從陣列(見下面的傻例子)填充動態AS3類的方法。
但是當我調用這些方法,所有這些似乎是同樣的方法。在下面的例子中,所有的方法都是foobar1
。
如果我手動創建方法,沒有環,一切都很好。
任何線索?
package foo
{
public class Bar
{
public function testDynamicClassSanity():void
{
var foo:Foo = new Foo();
var methods:Object = { foobar1: 101, foobar2: 201, foobar3: 301 };
for (var key:String in methods)
{
var val:Number = methods[key];
foo[key] = function():Number
{
return val;
};
}
// Next trace prints
// 101 = 101 201 = 101 301 = 101
trace(
101, "=", foo.foobar1(),
201, "=", foo.foobar2(),
301, "=", foo.foobar3()
);
}
}
}
internal dynamic class Foo
{
};
是的,你是正確的(幾乎是101)。我已經更新了這個問題。那麼如何解決這個問題呢? –
啊,我是假設的for循環遍歷定義它們的順序對象的屬性,那當然是愚蠢的假設:-)檢查該另一個問題http://stackoverflow.com/questions/422784/如何修復 - 關閉 - 問題在actionscript-3-as3的提示。 –