2009-02-26 1 views
0

다음 사람이 "정의되지 않은 속성에 대한 액세스 : removeChild (goBack)"오류 메시지가 나타나는 이유를 알 수 있습니까?as3 정의되지 않은 속성에 대한 액세스?

BTW,이

function nameOfFunction() { 

var goBack:backButton_mc = new backButton_mc(); 

goBack.x = 10; 

goBack.y = 700; 

goBack.back_text.text = myXML.*[buildingName].NAME; 

goBack.name = "backBtn"; 

goBack.buttonMode = true; 


addChild(goBack); 

goBack.addEventListener(MouseEvent.CLICK, anotherFunction); 

} 


function anotherFunction(e:MouseEvent):void { 

removeChild(goBack); 

} 

답변

1

당신은 범위가 잘못 플래시 CS4입니다. (깜짝 : - D)

변수 goBack은 "nameOfFunction"내부에서 정의됩니다. "anotherFunction"와 같은 다른 함수에서이 변수에 액세스하려고하면 더 이상 존재하지 않습니다 (표시 목록에 있더라도)

function anotherFunction(e:MouseEvent):void { 
    removeChild(e.currentTarget); 
} 

또는 것이 가장 좋은 방법 : 두 가지 기능을 유지하는 클래스의 클래스 회원으로 GoBack을 촉진)

다른이 문제를 해결하는 가능성이 있습니다. (또는 클래스를 사용하지 않으면 goBack이 "전역"이됩니다.)

1

하마는 맞지만 조금 더 설명하는 것이 중요하다고 느낍니다.

로컬 변수, 즉 var someVariable : DataType을 만들었습니다. 함수 내에서. 즉, 해당 변수는 함수의 범위 (내부)에있는 객체 (로컬에)에서만 사용할 수 있으며 함수의 수명 동안 지속됩니다. 곧이 기능이 실행되면 코드가 다시 실행될 때까지 사라집니다. 타임 라인에서 직접 플래시 IDE에 프로그래밍 할 가능성이있는 것처럼 보입니다. 그러나 문서 클래스를 사용하는 경우에는 생성자 함수 바로 위의 클래스 범위에서 변수를 선언 할 수 있습니다. 지금 사용하는 것과 동일한 기능으로 값을 설정하십시오. 이 방법으로, 변수에 대한 참조가 함수 내에 존재하지 않으며, 변수는 단순히 내부에서 설정됩니다. 이렇게하면 private로 설정된 경우에도 같은 클래스의 모든 위치에서 해당 변수에 액세스 할 수 있습니다.

//Frame 1, Actions layer 
//Slap goBack right onto the root/stage 
var goBack:MovieClip; 
/* 
I noticed you had this data-typed differently, 
i prefer to type to an interface, not an implementation. 
Since your class is a movieclip in the library it extends 
MovieClip and therefor IS A MovieClip, but ok either way. 
*/ 

function nameOfFunction():void 
{ 
    goBack = new backButton_mc(); 
    goBack.x = 10; 
    goBack.y = 700; 
    goBack.back_text.text = myXML.*[buildingName].NAME; 
    goBack.name = "backBtn"; 
    goBack.buttonMode = true; 
    addChild(goBack); 
    goBack.addEventListener(MouseEvent.CLICK, anotherFunction); 
} 

function anotherFunction(e:MouseEvent):void 
{ 
    removeChild(goBack); 
} 

범위가 매우 중요하며 잠시 후 아주 쉽게 해결하기 위해 :

이 도움이 될 수 있습니다. 이 책을 실험하고, 실험을하고, 개발에 도움이되는 표준과 표준을 읽고, 처음에는 일부 사람들에게는 어려운 일이긴하지만 DocumentClass를 좋아하게됩니다. 일단 익숙해지면 익숙해 져야합니다. 타임 라인에있는 플래시 IDE에서 프로그래밍으로 돌아가 보겠습니다. 여기서 객체와 오디오 만 표시되는 것은 어디에도 없습니다.