使用 Button 组件

Button 组件是一个可调整大小的矩形按钮,用户可以用鼠标或空格键将其按下以在应用程序中启动某个操作。可以给 Button 添加一个自定义图标。也可以将 Button 的行为从按下改为切换。在单击切换 Button 后,它将保持按下状态,直到再次单击时才会返回到弹起状态。

Button 是许多表单和 Web 应用程序的基础部分。每当您需要让用户启动一个事件时,都可以使用按钮实现。例如,大多数表单都有“提交”按钮。您也可以给演示文稿添加“前一个”和“后一个”按钮。

与 Button 组件进行用户交互

可以在应用程序中启用或者禁用按钮。在禁用状态下,按钮不接收鼠标或键盘输入。如果单击或者切换到处于启用状态的按钮,该按钮就会获得焦点。当一个 Button 实例具有焦点时,您可以使用下列按键来控制它:

说明

Shift+Tab

将焦点移到前一个对象。

空格键

按下或释放按钮并触发 click 事件。

Tab

将焦点移到下一个对象。

Enter/Return

如果按钮设置为 FocusManager 的默认 Button,则将焦点移到下一个对象。

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

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

注: 如果图标比按钮大,则图标将会延伸到按钮的边框之外。

若要将应用程序中的某个按钮指定为默认的普通按钮(当用户按 Enter 时接收单击事件的按钮),请设置 FocusManager.defaultButton 。例如,以下代码将默认按钮设置为名为 submitButton 的 Button 实例。

FocusManager.defaultButton = submitButton;

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

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

无论为一个组件创建了多少个实例,只需要对它启用辅助功能一次。

Button 组件参数

您可以在“属性”检查器(“窗口”>“属性”>“属性”)或“组件”检查器(“窗口”>“组件检查器”)中为每个 Button 实例设置下列创作参数: emphasized label labelPlacement selected toggle 。其中每个参数都有对应的同名 ActionScript 属性。为这些参数赋值时,将设置应用程序中属性的初始状态。在 ActionScript 中设置的属性会覆盖在对应参数中设置的值。有关这些参数的可能值的信息,请参阅 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中的 Button 类。

创建具有 Button 组件的应用程序

以下过程解释了如何在创作时将 Button 组件添加到应用程序。在此示例中,当您单击 Button 时会更改 ColorPicker 组件的状态。

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

  2. 将一个 Button 组件从“组件”面板拖到舞台上,并在“属性”检查器中为该组件输入以下值:

    • 输入实例名称 aButton

    • 为 label 参数输入 Show

  3. 在舞台上添加 ColorPicker,并为它指定实例名称 aCp

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

    aCp.visible = false; 
     
    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
     
    function clickHandler(event:MouseEvent):void { 
         
        switch(event.currentTarget.label) { 
            case "Show": 
                aCp.visible = true; 
                aButton.label = "Disable"; 
                break; 
            case "Disable": 
                aCp.enabled = false; 
                aButton.label = "Enable"; 
                break; 
            case "Enable": 
                aCp.enabled = true; 
                aButton.label = "Hide"; 
                break; 
            case "Hide": 
                aCp.visible = false; 
                aButton.label = "Show"; 
                break; 
        } 
    }

    第二行代码将函数 clickHandler() 注册为 MouseEvent.CLICK 事件。 当用户单击 Button 时将发生该事件,从而使 clickHandler() 函数根据 Button 的值执行以下操作之一:

    • Show 使 ColorPicker 可见,并将 Button 的标签更改为 Disable。

    • Disable 禁用 ColorPicker,并将 Button 的标签更改为 Enable。

    • Enable 启用 ColorPicker,并将 Button 的标签更改为 Hide。

    • Hide 使 ColorPicker 不可见,并将 Button 的标签更改为 Show。

  5. 选择“控制”>“测试影片”以运行此应用程序。

创建具有 Button 组件的应用程序

以下过程使用 ActionScript 创建一个切换 Button,并且当单击该 Button 时在“输出”面板中显示事件类型。该示例通过调用类的构造函数创建一个 Button 实例,并通过调用下面的方法将该实例添加到舞台上: addChild() 方法。

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

  2. 将 Button 组件从“组件”面板拖到当前文档的“库”面板中。

    此操作将组件添加到库中,但不会在应用程序中显示该组件。

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

    import fl.controls.Button; 
     
    var aButton:Button = new Button(); 
    addChild(aButton); 
    aButton.label = "Click me"; 
    aButton.toggle =true;  
    aButton.move(50, 50);

    move() 方法将按钮放在舞台的 50(x 坐标), 50(y 坐标)位置。

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

    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
     
    function clickHandler(event:MouseEvent):void { 
        trace("Event type: " + event.type); 
    }
  5. 选择“控制”>“测试影片”。

    单击按钮时,Flash 会在“输出”面板中显示消息“事件类型: 单击”。