레벨 선택 화면을 만들고 있는데 각 레벨마다 다른 레벨 번호를 표시하려면 텍스트 필드가 필요합니다. 여기서 내가 잘못하고있는 것을 실제로 볼 수는 없지만, 내가 한 일을 검토하고 관련 코드를 게시 할 것입니다.for 루프의 버튼 텍스트 필드 변경
버튼 클래스가 있고 (링크 된) 심볼 안에 동적 텍스트 필드가 있습니다. 나는 관련성이 높은 두 클래스 인 LevelSelectScreen
과 LevelSelectButtons
을 가지고 있습니다. 단순히 levelText.text = "Wanted Text"
을 수행하여 LevelSelectButtons
클래스 내에서 텍스트를 변경하면 텍스트를 변경하는 것이 매우 쉽다는 생각이 들었습니다. 여기에서 levelText
은 내 버튼의 인스턴스 이름 (버튼의 그래픽 상단에있는 텍스트 필드)입니다. 불행히도, 이렇게 오 이런 및 성가신 오류가 있습니다. TypeError : 오류 # 1009 : null 개체 참조 속성 또는 메서드를 액세스 할 수 없습니다.
내 루프 중에 내 LevelSelectScreen
클래스에서 동일한 작업을 실제로 시도했지만 동일한 오류가 발생했습니다. 이 레벨 텍스트를 작동시키는 방법에 대한 도움말은 크게 감사드립니다! 다음은 관련 코드입니다.
LevelSelectScreen
public class LevelSelectButtons extends SimpleButton {
public var levelNumber:int;
public var levelSelectScreen:LevelSelectScreen;
public function LevelSelectButtons(i) {
x = 200;
y = 100 + 50*i;
addEventListener(MouseEvent.CLICK,LevelSelectClicked,false,0,true)
levelNumber = i;
levelText.text = "Level" + i;
}
}
LevelSelectScreen
public class LevelSelectScreen extends MovieClip {
public var levelSelectButtons:LevelSelectButtons;
public var mainMenuButton:MainMenuButton;
public function LevelSelectScreen() {
for (var i:int = 1; i<=2; i++)
{
levelSelectButtons = new LevelSelectButtons(i);
addChild(levelSelectButtons);
}
}
}
이 답변에 추가하려면 SimpleButton은 DisplayObject이지만 DisplayObjectContainer가 아니므로 TextField와 같은 다른 DisplayObject 객체를 포함 할 수 없습니다. 텍스트 필드가 th로 "그려집니다" e SimpleButton을 자식으로 추가하는 대신 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/SimpleButton.html – Ohas
훌륭한 답변, 완벽하게 감사함 =) – spaderdabomb