由于我在运行时生成一个类的原因,该类具有一个带有受保护成员的现有超类,并实现了一个现有的接口。接口的每个方法(和访问器)也需要生成。我正在捣乱的地方是用正确的操作码填充方法体。 以下是我想要生成或转换为操作码的示例:
public function myFunction(arg1:String, arg2:int):Boolean
{
return member.my_namespace::myFunction(arg1, arg2);
}
所有信息都可用,例如函数名称,参数,返回类型和命名空间。我可以创建函数本身并返回默认值,如as3commons tests/examples
中所示也许我应该使用另一个lib而不是as3commons?
答案 0 :(得分:0)
我自己找到了答案。我所缺少的是(正确)使用QualifiedName来访问成员及其功能。我只删除了命名空间。这就是我在模板代码中修改的所有内容:
replace(ADDRESSBLOCK,' ','') =
replace(coalesce(@ADDR2_1, '') + CHAR(13) + CHAR(10) +
coalesce(@ADDR2_2, '') + CHAR(13) + CHAR(10) +
coalesce(@ADDR2_3, ''),' ',''))
以下是生成该函数所需的源代码,包括方法体的Opcodes:
public function myFunction(arg1:String, arg2:int):Boolean
{
return member.myFunction(arg1, arg2);
}
我不保证代码有效。我在我自己的项目中用一些动态的东西和循环来调整它,它工作得非常好。 我使用的库(d)是: