Промяна на динамичен текст с тест за попадение

Създавам флаш игра и искам да актуализирам номера на обиколката, като използвам ред в началото на всяка обиколка, имам динамично текстово поле, което е настроено по време на изпълнение да казва обиколка „0 от 3“ - Това работи добре.

var p1:String = "0 of 3";
lapPlayer1.text = p1;

Всеки път, когато колата удари линия с името на екземпляра LapChange, искам да се актуализира, поставих тест за попадение на колата. Текстовото поле е Dynamic Classic и се нарича lapPlayer1

onClipEvent(enterFrame){

if(this.hitTest(_root.LapChange)){

if (lapPlayer1.text == "0 of 3") {

        var p1:String = "1 of 3";
        lapPlayer1.text = p1;
    }

    if (lapPlayer1.text == "1 of 3") {

        var p1:String = "1 of 3";
        lapPlayer1.text = p1;

    } 

    if (lapPlayer1.text == "2 of 3") {

        var p1:String = "3 of 3";
        lapPlayer1.text = p1;
    }
}
}

Това обаче не е актуализиране на текста, всяка помощ ще бъде оценена

Карл


person CarlRyds    schedule 25.04.2014    source източник


Отговори (2)


Ето общата идея:

stage.addEventListener(Event.ENTER_FRAME,update){
    if(car.hitTestObject(line)){
        laps++;
    }

    switch(laps){
    case 1:
    your_text.text="lap one of three";
    break;
    //etc
    }
}

Използвайте блока за превключване, за да намерите лесно съвпадението и съответно да промените текстовото поле

person DrakeTruber    schedule 25.04.2014
comment
Току-що разбрах, че използвате страховития AS2. Ще трябва да адаптирате кода към вашата версия. - person DrakeTruber; 25.04.2014

Къде се намира lapPlayer1? Със сигурност не е вътре в колата, нали?

Трябва да се насочите към lapPlayer1 от вътрешността на колата, тъй като това е мястото, където е кодът ви, и ако приемем, че е поставен на _root, променете кода си на този:

onClipEvent(enterFrame){

if(this.hitTest(_root.LapChange)){

if (_root.lapPlayer1.text == "0 of 3") {

        var p1:String = "1 of 3";
        _root.lapPlayer1.text = p1;
    }

    if (_root.lapPlayer1.text == "1 of 3") {

        var p1:String = "1 of 3";
        _root.lapPlayer1.text = p1;

    } 

    if (_root.lapPlayer1.text == "2 of 3") {

        var p1:String = "3 of 3";
        _root.lapPlayer1.text = p1;
    }
}
}
person Prid    schedule 09.06.2014