2016-12-15 2 views
0

동적 텍스트 "형식 오류 : 오류 # 1009 :. null 객체 참조의 속성이나 메서드에 액세스 할 수 없습니다 을 sole_fla에 :: MainTimeline/게임()"어도비 애니메이션 CC 나는이 오류를</p> <p>가지고 널 오류

나는 단지 수는 없습니다 나는 이것이

"scoretext"내 코드

import flash.events.Event; 
import flash.events.KeyboardEvent; 
import flash.ui.Keyboard; 
import flash.display.MovieClip; 


addEventListener(Event.ENTER_FRAME, game); 
addEventListener(MouseEvent.CLICK, onClick); 

var score:int = 0; 
var high:int = 0; 

const gravity:Number = 2; 
const force: Number = 30; 
const lyfe: Number = 100; 
var yspeed: Number = 249; 
var life: Number = 0; 

function onClick(event:MouseEvent):void 
{ 
    //just testing if mouse input is detected 
    trace("The event handler works!"); 
} 





//game main loop 
function game(event: Event) { 


    score = 0; 
    life = lyfe; 
    yspeed = yspeed + gravity; 
    player.y = yspeed; 

    if(player.y - player.height/2 < 0) 
      player.y = player.height/2; 

    for (var i = 0; i < numChildren; i++) { 


    //test if mons hit player 
    if (mons.hitTestObject(player)){ 
     life = life - 10; 

     trace("hit"); 
    } 
    //test if starz hit player 
    if (starz.hitTestObject(player)){ 

     //I believe this is the part where it gets the error 
     //this is my scoretext dynamic text box to display the score 
     scoretext.text = score.toString(); 
     ++score; 

    } 


} 
} 

stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_KeyboardDownHandler_2); 

function fl_KeyboardDownHandler_2(event:KeyboardEvent):void 
{ 
if(event.keyCode == 32){ 

    yspeed = yspeed - force; 
    trace("Key Code Pressed: " + event.keyCode); 
    player.gotoAndPlay(41); 
} 

} 
+0

대개 해당 코드가 입력 프레임 처리기에 있기 때문에 'scoretext'항목이 하나 이상의 프레임에 존재하지 않습니다. 입력 프레임 핸들러는 타임 라인이 새 프레임으로 이동하는 경우에도 계속 실행되며 후속 프레임에서 scoretext라는 인스턴스가 없거나 인스턴스 이름이 설정된 경우 오류가 발생합니다. – BadFeelingAboutThis

답변

0

C라는 이름으로 만들어 동적 텍스트 상자에 내 점수를 표시 할 것 매달린 프레임은 지속적인 이벤트 리스너와 잘 어울리지 않습니다. 리스너가 실행되지만 객체가 현재 프레임에없는 경우 객체에 대한 참조는 null입니다.

응용 프로그램에서 상태를 전환 할 때 이벤트 리스너를 제거하여 이전 상태를 올바르게 종료하십시오.