2016-12-15 5 views
0

Я получил эту ошибкуAdobe Animate CC динамический текст нулевой ошибки

"TypeError: Error # 1009:. Не удается получить доступ к свойству или методу нулевой ссылки объекта на sole_fla :: MainTimeline/игры()"

я просто не могу, кажется, показывать мой счет на динамическое текстовое поле, который я создал, что я назвал как «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, если объект отсутствует в текущем кадре.

При переключении состояний в приложении прекратите предыдущие состояния, удалив прослушиватели событий.

Смежные вопросы