2014-10-09 4 views
2

Flash CC 2014.1 프로젝트를 내보낼 때 작성된 Canvas에서 함수를 호출하려고합니다.CreateJS 및 Flash Pro

// JS 코드 (플래시 내부)

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

//

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

가 // 내가 시도 내 HTML에서 JS 코드 :

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

// 어떤 아이디어 ? Flash에서 타임 라인에 코드를 추가

답변

3

는, 그것은에 정의 된 심볼 상황입니다. 귀하의 경우에는,이 하지 무대,하지만 기본적으로 루트 무비 클립이 수출되고 오히려 exportRoot 인스턴스이다 플래시에서. 내 보낸 JavaScript를 살펴보면 코드가 어떻게 결합되어 있는지 확인할 수 있습니다.

또한 프레임 1에 익명 함수를 정의 했으므로이 함수는 프레임 1 스크립트에서만 액세스 할 수 있으므로 외부에서 호출 할 수는 없습니다. this을 사용하여 함수를 프레임의 속성으로 정의하면이 문제를 해결할 수 있습니다.

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

이 귀하의 경우 아마도 exportRoot입니다 현재 심볼 (에 변수로 sayHello 방법을 정의 그것은 다음 어디서든 사용하여 호출 할 수 있습니다 :.

exportRoot.sayHello()

내가 만드는 희망 다른 질문이 있거나이 모든 작동 방식에 대한 추가 정보가 필요하면 알려주세요.

건배

+0

그것은 완벽합니다! 감사 –

관련 문제