【问题标题】:Use actionscript to uncheck a checkbox in a component?使用 actionscript 取消选中组件中的复选框?
【发布时间】:2025-12-20 08:05:07
【问题描述】:

我有一个带有复选框的组件,复选框在主代码中绑定到布尔值:

<mx:CheckBox id="LyrClearAll" selected="{Application.application.bLyrClearAll}"/>  

这适用于除非用户再次与它们交互,否则不会更改的复选框。出现我的问题是因为我想在每次关闭组件时“取消选中”其中一个框。 (我知道除了复选框之外的其他东西会更好,但我试图在这个组件中保持一致。)

我尝试将绑定的布尔变量设置为 false,并且尝试将 checkbox.selected 值设置为 false。两者都不起作用,每次我打开组件时,复选框仍然处于选中状态。

private function makeLyrsPopUp(evt:MouseEvent):void  
{  
  var panelLyr:popUpLayers = PopUpManager.createPopUp(this, popUpLayers, false) as popUpLayers;    
  panelLyr.LyrClearAll.selected == false; //?? set checkbox back to unchecked 
  panelLyr["cancelButton"].addEventListener("click", removeMe);
  panelLyr["okButton"].addEventListener("click", submitData);
  PopUpManager.centerPopUp(panelLyr);

  function submitData(event:Event):void  //change layer visibility based on check boxes in popupLayer
  {
    bLyrStreet = panelLyr.LyrStreet.selected;
    bLyrParcel = panelLyr.LyrParcel.selected;
    bLyrClearAll = panelLyr.LyrClearAll.selected;
    if (bLyrClearAll)
    {
      clearLayers();
      bLyrClearAll == false;  //?? set checkbox back to unchecked
    } 
    removeMe(event);
  }
} 

【问题讨论】:

    标签: apache-flex actionscript checkbox components


    【解决方案1】:

    需要将 == false 改为 = false

    【讨论】:

      【解决方案2】:

      bLyrClearAll 应该被声明为可绑定的:

      [Bindable]
      var bLyrClearAll: Boolean;
      

      【讨论】:

      • 我觉得自己很蠢——问题是我的 == false 应该只是 = false。现在它正在工作。
      • @Ursula:问和回答你自己的问题也很好。这样,每个人都可以看到,这个问题……得到了回答。 :)