文本字段大于或等于在 AS3 中有奇怪的效果

text field greater than or equal to having weird effects in AS3

我有一个触发器设置如下

var thiseffect:Boolean = false;

if (thistx.text >="6" && thistx.text <="12")
{ thiseffect = true; }

在这种情况下触发器不会激活,但是如果我将此触发器中的 12 值更改为低于 10 的值,或者如果我将 6 值更改为大于 10 的值,它将毫无问题地触发

我不太清楚这是为什么,有没有人遇到过这种情况?

这不完全是一个答案,而是一个解决方案

我已将我的文本输入转换为数字变量,触发器现在可以正常激活

var thiseffect:Boolean = false;
var mynum:Number = Number(thistx.text);

if (mynum>=6 && mynum<=12)
{ thiseffect = true; }

您可以使用以下运算符来比较字符串:<、<=、!=、==、=> 和 >。

但您应该注意:当对字符串使用这些运算符时,ActionScript 会考虑字符串中每个字符的字符代码值,从左到右比较字符。

因此在您的示例中,它是逐个字符而不是实际整数值从左到右进行比较。

trace("12" <= "6") ;//evaluates true
trace("12" <= "06");//evaluates false 

refer to Adobe Doc files here.