0

我正在尝试在 Flash Actionscript 2 中制作一个应用程序,其中包括将输入文本乘以八。有六个文本框;一半是输入,一半是动态的。当用户将一个数字输入到一个中时,相应的一个中的输出应该变为原始数量的八倍。(但是,中间的文本框与其对应的文本框保持相等。)

我不希望用户必须一直按下按钮,所以在框架外我放了一个“控制面板”电影剪辑。它基本上有两帧,一帧是我想要的任务,所以它基本上以每秒 24 帧的速度执行 12 次。

现在,相等的中间文本框工作正常。我可以把中间的第一个改成 6,第二个改成 6。与任何其他号码相同。但是另外两组文本框,即乘以 8 的文本框,它们总是以 NaN 出现。

当应用程序启动时,我将所有输入文本框的值设为 0。奇怪的是,动态的也是 0。我试着让输入文本框从 2 开始,果然,动态的是 16。但是,当我触摸输入的那一刻,它们变成了 NaN。显然,这意味着问题出在输入的字符串上。

在将其转换为整数之前,我尝试从其中一个输入中跟踪字符串。我输入了一个 3,当我跟踪它时,并没有像我预期的那样得到“3”,而是得到了这个:

<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Verdana" SIZE="18" COLOR="#000000" LETTERSPACING="0" KERNING="0">3</FONT></P></TEXTFORMAT>

所以这显然是问题所在;我只是不知道如何修复它,所以输出只是“3”或任何数字。

以下是变量:

• NTO_x = input that will be multiplied by 8 
• NTO_y = input that will not be changed 
• NTO_z = input that will be multiplied by 8 
• OFN_x = output of NTO_x 
• OFN_y = output of NTO_y 
• OFN_z = output of NTO_z

这是代码:

在场景的框架上:

//Sets the textboxes to number-only
NTO_x.restrict = "0-9";
NTO_x = "0"
NTO_y.restrict = "0-9";
NTO_y = "0";
NTO_z.restrict = "0-9";
NTO_z = "0";`

在“控制面板”影片剪辑的第二帧:

//Multiplies x and z by 8
_root.OFN_x = Number(_root.NTO_x) * 8;
_root.OFN_y = _root.NTO_y;
_root.OFN_z = Number(_root.NTO_z) * 8;
4

1 回答 1

0

InputTextbox(是一个输入框,有InputTextbox这个变量)

TimesEight = _root.InputTextbox * 8;

将变量中的动态文本框命名为“TimesEight”

我可以附上一个例子,但如果你不能弄清楚这样的事情,我会做更多的研究......

于 2013-06-04T04:09:08.930 回答