2009-11-11 2 views
2

다음 함수가 있지만 인라인 함수에 myVar 변수를 가져올 수 없습니다. 여기서 내가 뭘 잘못하고 있니? 내가 뭘하고 싶은지는 myMc를 클릭하면 myVar를 콘솔 ("hello computer")에 인쇄해야합니다.Action Script 2에서 인라인 함수에 변수를 전달하는 방법

 
function doSomething():Void 
{ 
    myVar = "hello computer"; 

    myMc.onRelease = function(){ 
     trace(myVar); //prints as "undefined" 
    } 
} 

ps. - myVar를 전역 변수 또는 정적 변수로 선언 할 수 없습니다. 왜냐하면 실제 코드에서는 XML을 구문 분석하고 myVar가 계속 변경되기 때문입니다.

답변

3

이것은 범위 문제입니다. as2에서 onRelease 함수를 적용하면 함수의 범위는 호출 함수가 아닌 함수를 적용하는 MovieClip입니다. 당신이 AS2를 사용하고 무비 클립은 동적이기 때문에

, 당신은 직접 MC에 변수를 할당 할 수

function doSomething():Void 
{ 
    myMc.myVar = "hello computer"; 

    myMc.onRelease = function(){ 
     trace(this.myVar); 
    } 
} 
+0

감사합니다! 그 일은 훌륭했습니다. 그것은 매우 직설적이지만, AS는 나에게 매우 새로운 것이므로 이것들은 훌륭한 교훈입니다. – justinl

+0

문제 없습니다. AS가 처음이라면 AS3으로 시작해야합니다. :) – Reuben

0

var 키워드 myVar를 선언하십시오 :

var myVar = "hello computer"; 
관련 문제