首页 > 解决方案 > AS3:如何检测负数

问题描述

在我的 AS3 应用程序中,我试图将我的值设置为 0,如果它进入负数,这是因为如果有人点击了太多次,它可能会进入负数。我想让这成为不可能。

这是我下面的代码,但是,它认为负数大于零。

我尝试了各种不同的代码和各种在线搜索都无济于事。

if(this.getData(2) > 0)
{
    this.setRes(2,0);
}

我想要它,如果该值为负数,则将其设置为 0。目前,只要它低于零,它就会将其设置为 0,但是,这在上面不起作用。如果我将它设置为使用 < 大于 then 符号,它会继续锁定为 0,即使它是一个负数,我也将它设置为开始用于测试目的。

我如何让它检测到负数以便它知道差异?或者更好的是,只是解决这个问题?

标签: actionscript-3flash

解决方案


您的数值 uint、int、Number 的数据类型是什么???您是否检查过实际值是否真的是负值?

var a : uint=1;
var b : int=1;

trace ("( a : uint = " + a + " ) - 1 = " + ((--a) as uint));
trace ("( a : uint = " + a + " ) - 1 = " + ((--a) as uint));
trace ("a : uint (" + a + ") < 0 ? -> " + (a < 0)); // !!! return false
trace ("( b : int = " + b + " ) - 1 = " + ((--b) as int));
trace ("( b : int = " + b + " ) - 1 = " + ((--b) as int));
trace ("b int (" + b + ") < 0 ? -> " + (b < 0)); // !!! return true

输出 :

( a : uint = 1 ) - 1 = 0
( a : uint = 0 ) - 1 = null
a : uint (4294967295) < 0 ? -> false
( b : int = 1 ) - 1 = 0
( b : int = 0 ) - 1 = -1
b int (-1) < 0 ? -> true

推荐阅读