在原型中更改外观属性

如果组件不直接支持外观变量,您可以将该组件分成子类并替换其外观。例如,ComboBox 组件不直接支持设置其下拉列表的外观,因为 ComboBox 使用 List 组件作为其下拉列表。

如果组件中包含子组件,则组件字典的组件条目中会标明这些子组件。

要为子组件设置外观,请执行以下操作:

  1. 执行编辑组件外观中的步骤,但编辑滚动条外观。在此范例中,请编辑 ScrollDownArrowDown 外观并为它指定新名称 MyScrollDownArrowDown
  2. 选择“文件”>“新建”,然后创建 Flash 文档。
  3. 选择“文件”>“保存”,并为该文件指定诸如 MyComboTest.fla 的唯一名称。
  4. 将 MyScrollDownArrowDown 从主题库拖到 MyComboTest.fla 的舞台上并删除它。

    此操作将元件添加到库中,但不会在舞台上显示它。

  5. 选择“插入”>“新元件”,并为其指定诸如 MyComboBox 的唯一名称。
  6. 选中“为动作脚本导出”复选框并单击“确定”。

    自动选中“在第一帧导出”。

  7. 在 MyComboBox 第 1 帧动作的“动作”面板上输入以下代码:
    #initclip 10
      import MyComboBox
      Object.registerClass("ComboBox", MyComboBox);
    #endinitclip
    
  8. 将 ComboBox 组件拖动到舞台上。
  9. 在属性检查器中,输入足够多的 Label 参数,以便使垂直滚动条显示出来。
  10. 选择“文件”>“保存”。
  11. 选择“文件”>“新建”,创建新的动作脚本文件(仅限 Flash Professional)。
  12. 输入以下代码:
    import mx.controls.ComboBox
    import mx.controls.scrollClasses.ScrollBar
    class MyComboBox extends ComboBox{
      function getDropdown():Object{
        var oldName = ScrollBar.prototype.downArrowDownName;
        ScrollBar.prototype.downArrowDownName = "MyScrollDownArrowDown";
        var r = super.getDropdown();
        ScrollBar.prototype.downArrowDownName = oldName;
        return r;
      }
    }
    
  13. 选择“文件”>“保存”,然后将此文件保存为 MyComboBox.as
  14. 单击舞台上的空白区域,然后在属性检查器中,选择“发布设置”按钮。 
  15. 选择“动作脚本版本设置”按钮。
  16. 单击加号按钮添加新的类路径,然后选择“目标”按钮浏览到 MyComboBox.as 文件在硬盘上的位置。
  17. 选择“控制”>“测试影片”。