在VBScript中编辑全局变量

时间:2013-06-22 12:19:23

标签: html vbscript

我确信有一种我不知道的聪明技术可以帮助解决这个问题,但我很难找到任何接近的例子,所以我希望有人可以帮我指出正确的方向。

我有一些全局变量,我想在子程序中编辑它们,具体取决于传递给它的变量。

基本上,这是一个想法(虽然在实践中规模更大):

<Script Language="VBScript">
    game1won=0
    game1full=0
    game2won=0
    game2full=0

    Sub Game11
        playerMove 1,1
    End Sub

    Sub Game12
        playerMove 1,2
    End Sub

    Sub Game21
        playerMove 2,1
    End Sub

    Sub Game22
        playerMove 2,2
    End Sub

    Sub playerMove(firstNumber, secondNumber)
        If [code to check if game is won] Then
            game[firstNumber]won=1
        End If
    End Sub
</Script>
<Body>
    <input id=runButton type="button" value="1.1" onClick="Game11><br>
    <input id=runButton type="button" value="1.2" onClick="Game12><br>
    <input id=runButton type="button" value="2.1" onClick="Game21><br>
    <input id=runButton type="button" value="2.2" onClick="Game22><br>

</Body>

正如您所看到的,我想编辑包含传递给子playerMove的第一个数字的变量,但无论我在尝试什么,我都会继续创建新变量,而不是编辑现有的全局变量。

有没有一种聪明的方法可以在没有IF / CASE语句的情况下编辑它,这可以帮到这里吗?

谢谢你们!

2 个答案:

答案 0 :(得分:2)

我不能同意“你不能用vbscript做那个”声明。看看ExecuteGlobal

game1won = 0
playerMove 1
MsgBox game1won
Sub playerMove(firstNumber)
    ExecuteGlobal "game" & firstNumber & "won=1"
End Sub

答案 1 :(得分:0)

不,你不能用vbscript做到这一点。最好的选择是使用数组:

Dim gameWon(2)
Dim gameFull(2)

gameWon(0) = 0
gameWon(1) = 0
gameFull(0) = 0
gameFull(1) = 0


Sub playerMove(firstNumber, secondNumber)
    If [code to check if game is won] Then
        gameWon(firstNumber-1)=1
    End If
End Sub