ここで明らかに何かが欠けています。
配列から動的 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
{
};