m3gate的例子:
extern function reset()
{
WMLBrowser.setVar("user", "0");
WMLBrowser.setVar("memory", "0");
WMLBrowser.setVar("op", "1"); // +
WMLBrowser.setVar("flush", "true");
WMLBrowser.refresh();
}
//-------------------------------------------------------------------------------
extern function digit(digit)
{
var wmlFlush = WMLBrowser.getVar("flush");
var wmlUser = WMLBrowser.getVar("user");
var fUser = Lang.parseFloat(wmlUser);
if (wmlFlush == "true")
{
wmlUser = "";
WMLBrowser.setVar("flush", "false");
}
if (digit < 10)
{
wmlUser += String.toString(digit);
}
else if (digit == 10) // +/-
{
if (String.length(wmlUser) == 0 || fUser == 0.0)
{
return;
}
if (String.charAt(wmlUser, 0) == "-")
{
wmlUser = String.subString(wmlUser, 1, String.length(wmlUser) - 1);
}
else
{
wmlUser = "-" + wmlUser;
}
}
else if (digit == 11) // .
{
var nPos = String.find(wmlUser, ".");
if (nPos == -1)
{
if (String.length(wmlUser) == 0)
{
wmlUser = "0";
}
wmlUser += ".";
}
}
WMLBrowser.setVar("user", wmlUser);
WMLBrowser.refresh();
}
//-------------------------------------------------------------------------------
extern function operation(op)
{
var wmlUser = WMLBrowser.getVar("user");
var fUser = Lang.parseFloat(wmlUser);
if (fUser == invalid)
{
WMLBrowser.go("index.wml#cError");
return;
}
var wmlMemory = WMLBrowser.getVar("memory");
var fMemory = Lang.parseFloat(wmlMemory);
var wmlOp = WMLBrowser.getVar("op");
var nOp = Lang.parseInt(wmlOp);
if (nOp == 1) // +
{
fMemory += fUser;
}
else if (nOp == 2) // -
{
fMemory -= fUser;
}
else if (nOp == 3) // *
{
fMemory *= fUser;
}
else if (nOp == 4) // /
{
fMemory /= fUser;
}
WMLBrowser.setVar("flush", "true");
fUser = fMemory;
nOp = op;
if (op == 0)
{
nOp = 1;
fMemory = 0.0;
}
WMLBrowser.setVar("user", String.toString(fUser));
WMLBrowser.setVar("memory", String.toString(fMemory));
WMLBrowser.setVar("op", String.toString(nOp));
WMLBrowser.refresh();
}