CreateJS和Flash Pro

时间:2014-10-09 20:55:24

标签: javascript flash html5-canvas createjs

我正在尝试调用导出Flash CC 2014.1项目时创建的Canvas中的函数。

// JS代码(在Flash中)

function sayHello()
{
   alert('hello');
}

//我的HTML中的JS代码

var canvas, stage, exportRoot;

function init() {
    canvas = document.getElementById("canvas");
    exportRoot = new lib.CreateJS();

    stage = new createjs.Stage(canvas);
    stage.addChild(exportRoot);
    stage.update();
    stage.enableMouseOver();

    createjs.Ticker.setFPS(lib.properties.fps);
    createjs.Ticker.addEventListener("tick", stage);



    sayHello()
}

//我试过了:

stage.sayHello();
canvas.stage.sayHello();

//有什么想法吗?

1 个答案:

答案 0 :(得分:3)

当您在Flash中的时间轴中添加代码时,它与其定义的符号具有上下文关系。在您的情况下,这是阶段,而是exportRoot实例,这实际上是从Flash导出的根MovieClip。看看导出的JavaScript,你可以看到代码是如何组合在一起的。

此外,您已在第1帧上定义了匿名函数,因此该函数只能在第1帧脚本上访问,不能在外部调用。您可以使用this将函数定义为框架的属性来解决此问题。

this.sayHello = function() {
    console.log("Hello");
}

这将sayHello方法定义为当前符号的变量(在您的情况下可能是exportRoot。然后可以使用以下任意位置调用它:

exportRoot.sayHello()

我希望这是有道理的。如果您有任何其他问题,请告诉我,或者需要有关这一切如何运作的更多信息。

干杯。