2013-04-15 4 views
0

동적 텍스트 필드의 텍스트를 무비 클립의 다른 동적 텍스트 필드의 텍스트로 설정하려고하면 AS3 오류가 발생합니다.AS3 getDefinitionByName이 함수가 아닙니다.

repairMachine.screen.gotoAndStop(5); 
repairMachine.screen.brandName.text = repairMachine.screen.getDefinitionByName(whichBrand).text; 

오류가 발생하는 경우 두 번째 줄은 다음과 같습니다

여기 내 코드입니다.

brandName은 MovieClip RepairMachine (repairMachine) 안에있는 Screen (screen)이라는 MovieClip의 동적 TextField입니다. 내가 whichbrand 설정 한 경우 다음

은 다음과 같습니다

whichBrand = "brand" + ((repairMachine.screen.selectionArea.y - 6)/22); 

이 코드는 작동하고 나는 성공적으로 올바른 인스턴스 이름으로 whichBrand을 추적하고있다.

제 질문은 다음과 같습니다. 왜 오류 # 1006이 발생합니까? getDefinitionByName은 함수가 아닙니다. 어떻게 해결할 수 있습니까?

미리 감사드립니다.

너,

밀라노.

답변

2

getDefinitionByName()은 클래스에 속하지 않습니다. 현재이 함수를 repairMachine.screen의 메소드로 호출하려고합니다.

당신은 그것을 제거하고 일반 함수로 호출해야한다 : 옆으로, 당신은 인스턴스에 액세스하려는

getDefinitionByName(whichBrand); 

합니다. getDefinitionByName()은 인스턴스가 아닌 클래스 정의를 가져 오기위한 것입니다. 너는 getChildByName() 이후입니다.

+0

getChildByName()을 사용할 때 텍스트와 DisplayObject 사이에 오류가 암시 적으로 발생합니다. which는 인스턴스 이름이 whichBrand 인 – MilanSxD

+0

@ user2281425와 같은 동적 텍스트 필드 내부의 텍스트에 액세스하기 때문에 getChildByName()은 DisplayObject를 반환합니다. TextField에 그것을 캐스팅해야합니다. '(getChildByName (whichBrand) as TextField) .text;' – Marty

+0

이제 Filter 연산자가 type 스크린에서 지원되지 않습니다. – MilanSxD

1

의 getDefinitionByName이

repairMachine.screen 

의 getDefinitionByName하는 방법이 아니기 때문에 당신은 그 오류를 얻고있는 플래시 유틸입니다.

import flash.utils.*; 

getDefinitionByName('my.fully.qualified.class.name'); 

당신은 whichBrand 포인트 예를 이름을 수정 언급 : 그래서 당신처럼 사용해야합니다.

getDefinitionByName 메소드는 인스턴스을 가져 오기위한이 아닌 입니다.

관련 문제