2014-04-25 55 views
0

我正在製作Flash遊戲,並且想要在每圈開始時使用一條線更新圈數,我有一個動態文本框,它在運行時設置爲圈數爲0 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; 
    } 
} 
} 

但是它沒有更新文本,任何幫助,將不勝感激

卡爾

回答

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

使用開關塊輕鬆找到匹配並相應地更改文本字段

+0

我只是意識到你正在使用的可怕AS2。您必須將代碼修改爲您的版本。 – DrakeTruber

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