我與FlashBuilder 4.6工作,並使用AS3Eval V0.3庫來自:http://eval.hurlant.com/AS3Eval庫抱怨「變量編譯沒有定義」
該庫完全一個工作我的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中的其他項目。
我檢查了這兩個項目(他們使用相同的庫...但還是檢查)成功通過
// 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類是通過嵌入在裏面SWC加載狨ESC [嵌入] (通過庫代碼查看),並且所有ByteArray都通過ByteLoader進行初始化和加載。
到目前爲止,我還沒有發現任何線索爲什麼編譯工作爲我的第一個項目,但不爲另一個。有沒有人有類似的經歷或一些提示可能會導致問題?
最佳, 的Jakub
謝謝你的提示,但我終於找到了解決方案(見下文)。乾杯! – Kefik 2012-08-09 11:39:36