AS3:布尔变量自己改变?

AS3: Boolean variables changing by themselves?

是的,您没看错标题。似乎布尔变量以某种方式自行切换为真。这是我能解释的唯一方法。这有可能吗?我有一个设置为 false 的布尔值,只能在严格条件下更改,但无论如何它都会与所有其他布尔变量一起更改。对此有什么合乎逻辑的解释吗?

由于您没有提供任何代码,我会回答您,让您能够找出是什么改变了您的变量。

既然你说你在用FlashDevelop,那我就给你一个具体的FlashDevelop答案吧。

  1. 如评论所述,使用 getter/setter 方法将允许您在代码中放置一个断点。所以不要像 private var myBool:Boolean; 那样做:

    private var myBool_:Boolean = false; //the actual var
    public function get myBool():Boolean { return myBool; }
    public function set myBool(val:Boolean):void { 
        myBool_ = val;
    }
    
  2. 现在在flash开发中,在这一行设置一个断点:myBool_ = val;。要设置断点,请单击装订线中行的左侧(请参阅屏幕截图中红点的位置)

  3. 运行 您的代码,查看 Stack 面板,然后双击第二行。这将向您显示设置变量的内容。

Larger Image