2012-11-09 2 views
1

나는이 컨테이너에 관련이 단계 :kineticjs의 컨테이너에서 무대를 받고

HTML :

<div id="container"> 

스크립트 1 : 두 번째 스크립트에서

var stageInFirstScript = new Kinetic.Stage({ 
    container: document.getElementById('container'), 
    width: this.SKETCH_WIDTH, 
    height: this.SKETCH_HEIGTH 
}); 

, 내가 필요 방금 만든 무대의 모양을 조작합니다. 이런 식으로 stageInFirstScript를 검색 할 수 있습니까?

스크립트 2 :

var stageInSecondScript = document.getElementById('container').RetrieveExistingStage(); 
//now I have retrieved stageInFirstScript 
//I can add shapes to it, etc.... 

어떤 도움이나 대체 솔루션을 주시면 감사하겠습니다!

답변

2

"stageInFirstScript"라는 변수를 간단하게 참조 할 수 있어야합니다. 그러나이 스크립트는 두 개의 분리 된 범위 내에있는 경우,이 변수를 글로벌하게 시도하고 이것이 (내가이 예를 들어 jQuery를 사용합니다)처럼 다음처럼 액세스 :

Script1.js을 :

var stageInFirstScript; // declaring global variable 

$(window).load(function() { 

    // assigning new stage to the global variable 

    stageInFirstScript = new Kinetic.Stage({ 
     container: document.getElementById('container'), 
     width: this.SKETCH_WIDTH, 
     height: this.SKETCH_HEIGTH 
    }); 

}); 

그리고 다음에 script2.js :

function doSomething() { 

    // accessing global variable and calling its method 

    stageInFirstScript.setHeight(300); 

} 

윈도우가로드 된 후이이 경우에 한 변수가 정의 된 후 함수가 호출됩니다로 작동합니다.

컨테이너의 무대를 얻으려는 경우, 내가 생각할 수있는 방법 중 하나는 키네틱 스테이지를 컨테이너 (또는 해당 ID)와 연관시키는 배열을 만드는 것입니다.

+0

바보 같은 소리, 자바에서 나는 전역 변수에 대해 잊어 버렸습니다. 이 glob 변수를 클래스 나 함수 밖에서 떠 다니는 것이 이상해 보입니다. 정말 고마워. – seinecle

관련 문제