使用命中测试更改动态文本

时间:2014-04-25 10:16:45

标签: flash variables actionscript-2 dynamic-text

我正在制作一个Flash游戏,并希望在每一圈开始时使用一条线更新圈数,我有一个动态文本框,在运行时设置为'0'的圈数' - 这是有效的细

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;
    }
}
}

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

卡尔

2 个答案:

答案 0 :(得分: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
    }
}

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

答案 1 :(得分:0)

lapPlayer1位于何处?当然它不在车内,对吗?

您必须从汽车内部定位lapPlayer1,因为您的代码所在地,并假设它位于_root,请将您的代码更改为:< / p>

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;
    }
}
}