2013-01-07 12 views
6

Jestem bardzo nowym użytkownikiem skryptu akcji 3 i próbuję teraz stworzyć bardzo podstawową grę. Jednak bez względu na to, ile stron oglądam, nie mogę znaleźć sposobu na uzyskanie wyniku w mojej grze: /.ActionScript 3: dynamiczna pomoc tekstowa: punktacja dla gry

Co próbuję zrobić, to sprawić, aby co 10 sekund 10 punktów zostało dodanych do partytury (w tej chwili mam ją zastąpić kluczem, aby sprawdzić, czy mogę to uruchomić, ale nie "t). Jest to kod Próbuję użyć teraz:

var playerScore:int = 0 

    stage.addEventListener(MouseEvent.CLICK,onclick); 

    function updateTextFields():void{ 
     playerScoreText.text = ("Player Score: " + playerScore); 
    } 

    if(Key.isDown(Key.G)){ 
      playerScore++; //increase playerScore by 1 
      updateTextFields(); 
    } 

playerScoreText to nazwa tekstu dynamicznego Każda pomoc będzie bardzo mile widziane :)

Kod ten został dodany w ogóle Timeline

Myślę, że problem jest najprawdopodobniej związany z tworzeniem tekstu dynamicznego, ale nie jestem pewien.

+0

nie wygląda jak masz coś do słuchania naciśnięć klawiszy. Gdzie istnieje opublikowany kod? Czy to tylko siedzi w osi czasu lub w klasie? Czy jest jakiś element zawierający ten kod? (co jest przed i po nim?) – Foggzie

+0

Niestety, zapomniałem dodać detektora zdarzeń w kodzie, który tam umieściłem, ale mam go: XD stage.addEventListener (MouseEvent.CLICK, onclick); jest w sekcji działań na osi czasu – jackbtroop62

Odpowiedz

2

Upewnij się, że czcionki są osadzone prawidłowo, a kolor dynamicznego pola tekstowego nie jest taki sam jak tło.

też zamiast pisać

playerScoreText.text = ("Player Score: " + playerScore); 

spróbować tej

playerScoreText.text = "Player Score: " + String(playerScore); 
+0

hmm wciąż mam ten sam problem, I wiem, że kolory i osadzanie jest w porządku, czy możesz wymyślić jakieś typowe błędy, które powstają przy tworzeniu dynamicznego tekstu? Ponieważ jestem prawie pewien, że to jest problem, ponieważ kodowanie wydaje się być w porządku: l – jackbtroop62

+0

'playerScore + = 10' brakuje średnika na końcu. Upewnij się także, że pole tekstowe nie znajduje się pod żadnym innym obiektem. Upewnij się, że jest wystarczająco duży, aby zmieścił się tekst. –

+0

Spróbuj również zmienić właściwości aliasów anty. zmień go, aby używał czcionek urządzenia lub nie ma anty aliasu i zobacz, co to robi. również ktoś może odpowiedzieć na moje - http://stackoverflow.com/questions/14204769/what-is-the-null-object-error-with-this-as3-code-for-loading-external-swf –

2

Wygląda na to, że chcesz zrobić coś takiego z klasą timera. Twój kluczowy kod nie jest poprawnie napisany.

var playerScore:int = 0; 
var score_timer:Timer = new Timer(10000,0); 
score_timer.addEventListener(TimerEvent.TIMER,updateTextFields); 
score_timer.start(); 
function updateTextFields(e:TimerEvent):void 
{ 
    playerScore+=10 
    playerScoreText.text = ("Player Score: " + playerScore); 
} 
+0

To nie działa, tekst na ekranie gracza pozostaje na poziomie 0, a czasem trzęsie się na sekundę i dodaje kolejne 0. Aby upewnić się, że nie jest to tylko coś w tym projektu, wkleiłem ten kod w zupełnie nowy projekt i wciąż nic: /. Czy jest coś jeszcze, co muszę dodać, aby to zadziałało? – jackbtroop62

+0

Mam również problemy z dynamicznym tekstem i pokazuje tylko niektóre liczby. Spróbuj bitmapowo czcionki z jej właściwości. – Jono

+0

Mam na myśli tekst. Powinien to być TextField, jeśli dobrze pamiętam. – Jono