使用 CheckBox 组件

CheckBox 是一个可以选中或取消选中的方框。当它被选中后,框中会出现一个复选标记。可以为 CheckBox 添加一个文本标签,并可以将它放在 CheckBox 的左侧、右侧、上面或下面。

可以使用 CheckBox 收集一组不相互排斥的 true false 值。例如,如果应用程序需要收集有关您希望购买何种类型轿车的信息,那么可以使用 CheckBox 来供您选择轿车特征。

与 CheckBox 进行用户交互

可以在应用程序中启用或者禁用 CheckBox。如果 CheckBox 已启用,且用户单击它或者它的标签,则 CheckBox 会获得输入焦点并显示为按下状态。如果用户在按下鼠标按键时将鼠标指针移到 CheckBox 或其标签的边界区域之外,则组件的外观会返回到其原始状态,并保持输入焦点。在组件上释放鼠标之前,CheckBox 的状态不会更改。另外,CheckBox 有选中和取消选中两种禁用状态,这两种状态分别使用 selectedDisabledSkin disabledSkin 设置,不允许鼠标或键盘的交互操作。

如果 CheckBox 被禁用,则无论用户进行什么交互操作,它都会显示其禁用外观。在禁用状态下,CheckBox 不接收鼠标或键盘输入。

如果用户单击 CheckBox 实例或者用 Tab 按键切换到它时,CheckBox 实例将接收焦点。当一个 CheckBox 实例有焦点时,您可以使用下列按键来控制它:

说明

Shift+Tab

将焦点移到前一个元素。

空格键

选中或者取消选中组件,并触发 change 事件。

Tab

将焦点移到下一个元素。

有关控制焦点的详细信息,请参阅 使用 FocusManager 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中的 FocusManager 类。

每个 CheckBox 实例的实时预览反映在创作过程中对“属性”检查器或“组件”检查器中的参数所做的更改。

在将 CheckBox 组件添加到应用程序时,可以添加以下数行 ActionScript 代码,使屏幕阅读器能够访问它:

import fl.accessibility.CheckBoxAccImpl; 
 
CheckBoxAccImpl.enableAccessibility();

不管组件有多少实例,都只对组件启用一次辅助功能。

CheckBox 组件参数

您可以在“属性”检查器或“组件”检查器中为每个 CheckBox 组件实例设置下列创作参数: label labelPlacement selected 。其中每个参数都有对应的同名 ActionScript 属性。有关这些参数的可能值的信息,请参阅 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中的 CheckBox 类。

创建使用 CheckBox 的应用程序

以下过程解释了如何在创作时将 CheckBox 组件添加到应用程序,本示例摘自一个贷款申请表。该申请表询问申请人是否拥有自己的住房,并为申请人提供了一个 CheckBox 来回答“是”。如果是,则申请表将为申请人显示两个单选按钮,以表示房屋的相对价值。

创建使用 CheckBox 组件的应用程序

  1. 创建一个新的 Flash (ActionScript 3.0) 文档。

  2. 将 CheckBox 组件从“组件”面板拖到舞台上。

  3. 在属性检查器中,执行以下操作:

    • 输入 homeCh 作为实例名称。

    • 输入 140 作为宽度 (W) 值。

    • 输入“ Own your home ?”作为 label 参数。

  4. 将两个 RadioButton 组件从“组件”面板拖到舞台上,并将它们放置在 CheckBox 的右下方。在“属性”检查器中为它们输入以下值:

    • 输入 underRb overRb 作为实例名称。

    • 输入 120 作为两个单选按钮的 W(宽)参数。

    • 输入 Under $500,000? 作为 underRb 的 label 参数。

    • 输入 Over $500,000? 作为 overRb 的 label 参数。

    • 输入 valueGrp 作为两个单选按钮的 groupName 参数。

  5. 打开“动作”面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:

    homeCh.addEventListener(MouseEvent.CLICK, clickHandler); 
    underRb.enabled = false; 
    overRb.enabled = false; 
     
    function clickHandler(event:MouseEvent):void { 
        underRb.enabled = event.target.selected; 
        overRb.enabled = event.target.selected;     
    }

    此代码为 CLICK 事件创建一个事件处理函数,如果选中 homeCh CheckBox,则该函数启用 underRb overRb RadioButton,如果未选中 homeCh ,则禁用这两个 RadioButton。有关详细信息,请参阅 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中的 MouseEvent 类。

  6. 选择“控制”>“测试影片”。

以下示例重复了上述应用,但采用 ActionScript 来创建 CheckBox 和 RadioButton 组件。

使用 ActionScript 创建 CheckBox

  1. 创建一个新的 Flash (ActionScript 3.0) 文档。

  2. 将 CheckBox 组件和 RadioButton 组件从“组件”面板拖到当前文档的“库”面板中。如果“库”面板没有打开,请按 Ctrl+L 或选择“窗口”>“库”以打开“库”面板。

    此操作使组件可用于应用程序,但不会将它们放在舞台上。

  3. 打开“动作”面板,在主时间轴中选择第 1 帧,然后输入以下代码创建并放置组件实例:

    import fl.controls.CheckBox; 
    import fl.controls.RadioButton; 
     
    var homeCh:CheckBox = new CheckBox(); 
    var underRb:RadioButton = new RadioButton(); 
    var overRb:RadioButton = new RadioButton(); 
    addChild(homeCh); 
    addChild(underRb); 
    addChild(overRb); 
    underRb.groupName = "valueGrp"; 
    overRb.groupName = "valueGrp"; 
    homeCh.move(200, 100); 
    homeCh.width = 120; 
    homeCh.label = "Own your home?"; 
    underRb.move(220, 130); 
    underRb.enabled = false; 
    underRb.width = 120; 
    underRb.label = "Under $500,000?"; 
    overRb.move(220, 150); 
    overRb.enabled = false; 
    overRb.width = 120; 
    overRb.label = "Over $500,000?";

    此代码使用 CheckBox() RadioButton() 构造函数创建组件,并使用 addChild() 方法将组件放在舞台上。然后,使用 move() 方法确定组件在舞台上的位置。

  4. 现在,添加以下 ActionScript 来创建一个事件侦听器和一个事件处理函数:

    homeCh.addEventListener(MouseEvent.CLICK, clickHandler); 
     
    function clickHandler(event:MouseEvent):void { 
        underRb.enabled = event.target.selected; 
        overRb.enabled = event.target.selected;     
    }

    此代码为 CLICK 事件创建一个事件处理函数,如果选中 homeCh CheckBox,则该函数启用 underRb overRb 单选按钮,如果未选中 homeCh ,则禁用这两个单选按钮。有关详细信息,请参阅 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中的 MouseEvent 类。

  5. 选择“控制”>“测试影片”。