parseInt添加程序总是导致;“南”Flash动作脚本1

parseInt添加程序总是导致;“南”Flash动作脚本1,flash,actionscript,nan,parseint,Flash,Actionscript,Nan,Parseint,我对这里很陌生,最近我买了一本关于使用Actionscript 1.0进行flash游戏编程的书 让我澄清一下: 此网站或其他网站上没有任何帖子可以回答我的问题。 我知道你们对Javascript中使用的“parseInt”函数有很多疑问,但是没有一个能给我答案 我正在做一个练习,包括创建一个加法器程序,用户输入两个数字,程序将它们相加。我的代码如下所示: btnAdd.onRelease = function() { sum = parseInt(A) + parseInt(B) } 这是一

我对这里很陌生,最近我买了一本关于使用Actionscript 1.0进行flash游戏编程的书

让我澄清一下: 此网站或其他网站上没有任何帖子可以回答我的问题。

我知道你们对Javascript中使用的“parseInt”函数有很多疑问,但是没有一个能给我答案

我正在做一个练习,包括创建一个加法器程序,用户输入两个数字,程序将它们相加。我的代码如下所示:

btnAdd.onRelease = function() { sum = parseInt(A) + parseInt(B) }
这是一个极其简单的程序,令人愤怒地拒绝工作。每次我测试它时,输出都是NaN。毫无疑问

A和B指的是我分配给输入文本框的变量。 “sum”是指我分配给显示输出(动态)的文本框的变量

不,我的变量没有错,我可能已经检查了六元组。按钮实例名称也正确

在我为这个愚蠢而简单的问题寻找答案的研究中,我发现了以下几个地方:

第一个网站上有人提出了完全相同的问题,但一直没有人回答,而那个人只提出了替代编码,并返回了“NaN”

stackoverflow上还有许多其他不相关的站点在不同的情况下讨论parseInt

我从这些地方真正学到的唯一一件事是,如果parseInt不能将字符串解析为整数,那么它只返回NaN,即“fsd”将返回“NaN”,但“4”应返回“4”

我每次只输入整数,但它总是给我NaN

我还测试了没有parseInt的程序,如下所示:

btnAdd.onRelease = function() { sum = A + B }
我知道这非常有效,因为输出显示两个相邻的数字(1+2变为12,4+6变为46等)

这显然是因为flash认为数字是字符串,而我真的希望它们是整数。这就是parseInt应该做的


发生了什么事?如果您需要图片或更多信息,请告诉我。

在Flash Professional CS6中,使用ActionScript 1.0发布到Flash Player 5,我已成功完成以下操作:

var A = "1";
var B = "3";

trace(A + B);//outputs 13
sum = parseInt(A) + parseInt(B); 
trace(sum);// outputs 4
这清楚地表明
parseInt()
功能正常


查看.fla之后,问题似乎是将输入文本链接到变量,会将HTML填充到所述变量中

因此,在输入数字4后,
A
的值为:

<P ALIGN="CENTER"><FONT FACE="Arial" SIZE="40" COLOR="#000000" LETTERSPACING="0" KERNING="0">4</FONT></P>

您是如何在AS1上找到资源的?一年或两年前出于好奇,我试着寻找它,但它看起来像是任何手册或编译器都被完全掩埋了。可能是AS2吗?你在用什么编译?Flash专业版?如果是,是什么版本。出于好奇,为什么要学习AS1?我试着在FlashPro CS6中将您的示例编译为AS1,没有问题。您确定onRelease的范围内有
A
B
吗?了解其他信息。ActionScript1.0非常古老,是第一代黑客脚本,允许设计师在当天添加一些非常基本的功能到他们的动画中。ActionScript 3.0将更具相关性,更接近真实的编程体验,但即便如此,我还是会去别处看看。我是用AdobeFlash Professional CS6编译的,我不确定你所说的“范围”是什么意思。你能详细说明一下吗?(我是个新手)我正在学习ActionScript1,因为它是我在书中看到的编程语言。但是,我以前用AS3编程过。所谓范围,我的意思是你没有显示
A
B
的定义位置和定义方式。因此,您确定A和B可以在分配给
btnAdd.onRelease
的匿名函数中访问吗。在堆栈站点上回复评论时,请使用@username,否则不会通知任何人您的回复。因此,要确认,修复方法是将HTML转换为文本,然后对实例名称而不是变量使用
parseInt
?顺便说一句,谢谢你,你的代码工作得很好。是的,你不需要访问分配给文本字段的变量,而是直接访问textfield对象
.text
属性。
btnAdd.onRelease = function() {
    sum = parseInt(txtA.text) + parseInt(txtB.text);
}