文本字段大于或等于在 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
我有一个触发器设置如下
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