【发布时间】:2012-08-09 11:05:08
【问题描述】:
我正在使用 FlashBuilder 4.6 并使用来自:http://eval.hurlant.com/
的 AS3Eval v0.3 库该库在我的 Flex 4.6.0 项目中的一个中完全正常工作,但在另一个中没有(与 EvalES4.swc 库相同的库链接“合并到代码中”)。
在第一个项目中,以下代码有效:
private var compiler:CompiledESC = new CompiledESC;
public function compile(code: String) : ByteArray {
return compiler.eval(code);
}
在其他项目中,它失败: ReferenceError:错误 #1065:未定义变量编译。
错误是指 AS3Eval 库(即 EvalES4.swc 文件)中的以下行
var compile:Function = getDefinitionByName("ESC::compile") as Function;
看起来库在其他项目中完全加载 Tamarin ESC 时出现问题。
我已经检查了两个项目(它们使用同一个库......但仍然检查)通过成功加载 Tamarin ESC
// inside CompiledESC.as
private function loadESC():void {
var a:Array = [
new debug_abc as ByteArray,
new util_abc as ByteArray,
new bytes_tamarin_abc as ByteArray,
new util_tamarin_abc as ByteArray,
new lex_char_abc as ByteArray,
new lex_scan_abc as ByteArray,
new lex_token_abc as ByteArray,
new ast_abc as ByteArray,
new parse_abc as ByteArray,
new asm_abc as ByteArray,
new abc_abc as ByteArray,
new emit_abc as ByteArray,
new cogen_abc as ByteArray,
new cogen_stmt_abc as ByteArray,
new cogen_expr_abc as ByteArray,
new esc_core_abc as ByteArray,
new eval_support_abc as ByteArray,
new esc_env_abc as ByteArray,
]
ByteLoader.loadBytes(a, true);
}
这些 ByteArray 类使用 [Embed](查看库代码)嵌入到 SWC 中,并且所有 ByteArray 在这两种情况下都通过 ByteLoader 进行初始化和加载。
到目前为止,我还没有找到任何线索,为什么编译对我的第一个项目有效,而对另一个项目无效。有没有人有类似的经历或提示可能导致问题的原因?
最好, 雅库布
【问题讨论】:
标签: actionscript-3 flash