2011-12-10 5 views
1

이 메시지가 손실됩니다. 나는Flash TypeError : 오류 # 1009 : null 개체 참조의 속성이나 메서드에 액세스 할 수 없습니다. - 문서 클래스에서 TLFTextField에 액세스 할 때

package { 

import flash.display.*; 
import fl.text.*; 
import flash.text.*; 
import flash.events.*; 
import flash.net.*; 

public class Main extends MovieClip { 

    private var _netConnection:NetConnection; 
    private var _responder:Responder; 
    /* some other public + private vars */ 

    public function Main() { 
     init(); 
    } 

    public function init(e:*=null):void { 
     _netConnection = new NetConnection(); 
     _responder = new Responder(uponResult); 

     txt.text = "init()"; 
    } 
    /* more functions */ 
    } 
} 

내가 넣다 TLFTextField를이 아니었다 TXT를 txt.addEventListener(Event.ENTER_FRAME, init);을 추가하는 시도 (액션이 아닌 IDE에서 추가)를 TypeError: Error #1009: Cannot access a property or method of a null object reference. 출력 메시지 내 문서 클래스가 무대에 간단한 텍스트 필드에 액세스하려고 처음받을 .. 거기 ... 시작 부분에 오류가 출력됩니다.

나는 바보 같은 느낌이 든다. 예후 의사는 무엇인가? JB

+0

은 당신이 당신의'txt'를 초기화하는 방법과 위치에 따라 달라집니다. 그 코드를 게시 할 수 있습니까? –

+0

txt는 actionscript가 아닌 Flash IDE를 통해 스테이지에 수동으로 추가됩니다. –

+0

txt가 없으면 이벤트 리스너를 추가 할 수 없습니다 ... 문서 클래스 'Event.ADDED_TO_STAGE! – weltraumpirat

답변

2

TLFTextField는 이상한 생물입니다. 최근에 많은 문제가있었습니다.

당신이 그들에 액세스하려고 할 때 TLFTextFields가 무대에 있어야하기 때문에 나는이 Event.ADDED_TO_STAGE 이벤트를 사용하려고 것 :

public function Main() { 
    addEventListener(Event.ADDED_TO_STAGE, init); 
}; 
public function init(e:Event):void { 
    removeEventListener(Event.ADDED_TO_STAGE, init); 
    txt.text = "init()"; 
}; 

당신의 TLFTextField를가 첫 번째 프레임에있는 경우 작동합니다 메인 타임 라인. 이 하나가 마법을 수행 알려줘

,

+0

그 트릭을 했어요, Rob, 친절하게 감사드립니다! 저를 괴롭힌 다른 한 가지는 TLFTextFields가 읽기 전용 일 때만 선택 가능하거나 편집 가능할 때만 제대로 작동하는 것 같습니다. 이것은 동작 스크립트 버그입니까, 제대로 작동하게하려면 추가 작업이 필요합니까? –

+0

TLFTextField는 여전히 베타 기능이며 불행히도 버그로 가득차 있습니다. 나는 당신이 할 수있는만큼 그것을 읽고 당신이 당신의 코드에 갇혀 있다면, 여기에 와서 읽어보십시오. – robertp