0

我正在制作一个 Flash 游戏,并希望在每圈开始时使用一行来更新圈数,我有一个动态文本框,在运行时设置为 lap '0 of 3' - 这很好用。

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

每次汽车撞到一条实例名称为LapChange的线时,我都希望它更新,我已经对汽车进行了撞击测试。文本框是动态经典,它称为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;
    }
}
}

但是它没有更新文本,任何帮助将不胜感激

卡尔

4

2 回答 2

0

位于哪里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;
    }
}
}
于 2014-06-09T14:21:41.350 回答
0

这是一般的想法:

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

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

使用 switch 块轻松找到匹配项并相应地更改文本字段

于 2014-04-25T12:34:08.470 回答