CreateJS and Flash Pro

CreateJS and Flash Pro

本文关键字:Pro Flash and CreateJS      更新时间:2023-09-26

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

//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();

//有什么想法吗?

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

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

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

这将sayHello方法定义为当前符号上的一个变量(在您的情况下,可能是exportRoot。然后可以使用从任何地方调用它

exportRoot.sayHello()

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

干杯。