2012-03-28 2 views
0

클래스 Person이 있습니다. 즉 Person의 이름과 나이가 정의되어 있습니다. SuperClass가 주요 클래스입니다. Flash 문서의 textBox에 이름과 나이를 표시하고 싶습니다.ActionScript의 클래스 구조

나는 플래시를 초보자입니다. 클래스 구조 또는 코딩 규칙이 잘못되었습니다. 그것은 "정의되지 않은 메서드 addChild 호출"오류를 제공합니다.

답변

2

사용자 클래스는 데이터 개체이므로보기 작업을 수행하지 않아야합니다.

그래서 : 위의 코드가 작동하기 위해 사람의 변수를 공개해야합니다

protected var p1:Person; 
protected var tf:Textfield; 

public function SuperbClass() { 
    p1 = new Person('Brenda', 30); 
    tf = new TextField(); 
    tf.text = p1.name + ' is ' + p1.age + ' years old.'; 
    addChild(tf);//SuperBClass extends Sprite, so this works 
} 

참고. 당신은이 같은 전화 것

public function get info():String { 
    return name + ' is ' + age + ' years old.'; 
} 

:

tf.text = p1.info; 
+0

좋은 설명 또는, 전체 문자열을 반환 사람에 게터를 만들 수 있습니다. –

+0

다른 getter 공용 함수 get name : String {return name;}을 추가 할 경우. 왜 효과가 없습니까? –

+1

코드를 보지 않고 말하기는 어렵지만, private 변수가 getter 함수와 동일한 이름을 갖고 있으면 작동하지 않습니다. 이것이 많은 사람들이 관례 상 (예 : _name) 사적인 변수 이름 앞에 "_"을 붙이는 이유입니다. –

0

사용자 클래스는 MoviClip 또는 Sprite 또는 addChild 메소드가있는 항목을 확장해야합니다.