2014-10-09 92 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

相關問題