Изменение динамического текста с помощью проверки попадания

Я делаю флеш-игру и хочу обновить номер круга, используя строку в начале каждого круга, у меня есть динамическое текстовое поле, в котором во время выполнения указывается круг «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