首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Flash ActionScript 3 Bug?在开关/大小写中使用整数和负数

Flash ActionScript 3 Bug?在开关/大小写中使用整数和负数

提问于 2018-02-05 01:15:15
回答 3关注 0查看 313

运行此代码

代码语言:javascript
复制
var myValue1:int = 2;
switch (myValue1)
{
    case -3: trace(myValue1 + " == -3"); break;
    case -2: trace(myValue1 + " == -2"); break;
    case -1: trace(myValue1 + " == -1"); break;
    case 0:  trace(myValue1 + " == 0"); break;
    case 1:  trace(myValue1 + " == 1"); break;
    case 2:  trace(myValue1 + " == 2"); break;
    case 3:  trace(myValue1 + " == 3"); break;
    default: trace(myValue1 + " is unknown"); break;
}

var myValue2:int = -2;
switch (myValue2)
{
    case -3: trace(myValue2 + " == -3"); break;
    case -2: trace(myValue2 + " == -2"); break;
    case -1: trace(myValue2 + " == -1"); break;
    case 0:  trace(myValue2 + " == 0"); break;
    case 1:  trace(myValue2 + " == 1"); break;
    case 2:  trace(myValue2 + " == 2"); break;
    case 3:  trace(myValue2 + " == 3"); break;
    default: trace(myValue2 + " is unknown"); break;
}

给出这个输出:

代码语言:javascript
复制
2 == 0
-2 is unknown

(用Flash Builder 4.7.0.349722编译,运行在Flash 11.5.502.149上。运行在Windows 7 SP1,Firefox 18.0.2中)

以下更改都修复了上述问题,并给出了正确的输出:

  • 将值类型更改为Number...
  • 移除负数case
  • 更改case语句使用int---变量而不是文字...除非这些变量也是const在这种情况下。

改变myValue2 = -1给出输出-1 == -3,这也是同样的意思。

很明显这是个bug但是...是什么原因造成的?是否有一些微妙的细微差别int或者我不明白的负数?我的代码有错吗?或者这只是FlashBuilder中字节码编译器的一个问题?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档