Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3scriptinglib(动态代码加载)正在编译代码,但未执行_Actionscript 3_Air_Flashdevelop - Fatal编程技术网

Actionscript 3 as3scriptinglib(动态代码加载)正在编译代码,但未执行

Actionscript 3 as3scriptinglib(动态代码加载)正在编译代码,但未执行,actionscript-3,air,flashdevelop,Actionscript 3,Air,Flashdevelop,我在项目实施中遇到问题 代码已编译,但根本没有执行 public function Main():void { var loader:CompilerLoader = new CompilerLoader(); loader.addEventListener(CompilerEvent.INIT, compilerInit); loader.load("ESCompilerSWF.swf"); trace("INIT"); } private function

我在项目实施中遇到问题

代码已编译,但根本没有执行

public function Main():void {
    var loader:CompilerLoader = new CompilerLoader();
    loader.addEventListener(CompilerEvent.INIT, compilerInit);
    loader.load("ESCompilerSWF.swf");
    trace("INIT");
}

private function compilerInit(event:CompilerEvent):void {
    var compiler:ICompiler = event.compiler;
    trace("PREPARE",compiler.initialized);
    var str:String = 'trace("HELLO WORLD");';
    try {
        var script:IScript = compiler.compileAndLoad(str, new ScriptContext(this));
        script.addEventListener(ScriptErrorEvent.SCRIPT_ERROR, trace);
        trace("Script created");
    } catch (e:Error) {
        trace("ERROR", e.message);
    }
    trace("READY");

}
它输出:

INIT
PREPARE true
Script created
READY
因此,正如您所看到的,代码不是由as3scriptinglib执行的。
帮助。

我已经解决了这个问题。执行脚本的类被垃圾收集,因此我更改:

var script:IScript = compiler.compileAndLoad(str, new ScriptContext(this));
函数外部的变量,如:

script = compiler.compileAndLoad(str, new ScriptContext(this));
它是有效的

:)