2014-10-09 54 views
2

我想在导出Flash CC 2014.1项目时创建的Canvas中调用一个函数。CreateJS和Flash Pro

// JS代码(内部闪存)

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

// JS代码在我的HTML

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

//任何想法?

回答

3

当您添加代码到Flash中的时间轴,它是上下文到它在定义的符号。在你的情况,这是的阶段,而是exportRoot情况下,这基本上是对根MovieClip出口来自Flash。看看被导出的JavaScript,你可以看到代码是如何放在一起的。

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

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

这定义了sayHello方法针对当前符号(在你的情况可能是exportRoot一个变量然后它可以从任何地方使用名为:

exportRoot.sayHello()

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

干杯。

+0

这是完美的!谢谢 – 2014-10-11 04:18:14