将新外观应用到子组件

某些情况下,您可能要修改组件中某个子组件的外观,但无法直接访问外观属性(例如,无法直接修改 List 组件中的滚动条外观)。使用以下代码,您可以访问滚动条外观。在运行此代码之后创建的所有滚动条也都会具有新外观。

如果一个组件由若干个子组件构成,则《ActionScript 2.0 组件语言参考》中该组件的条目中会标识出这些子组件。

将新外观应用到子组件:

  1. 按照创建新组件外观中的步骤操作,但编辑的是滚动条外观。在对于本例,编辑 ScrollDownArrowDown 外观并为它指定新名称 MyScrollDownArrowDown
  2. 选择"文件">"新建",创建一个新的 Flash 文档。
  3. 选择"文件">"保存",并为该文件指定唯一的名称,如 SubcomponentProject.fla
  4. 将 List 组件从"组件"面板拖到库中。

    此操作会将该组件添加到"库"面板,但不会在文档中显示该组件。

  5. 将 MyScrollDownArrowDown 和任何编辑过的其它元件从 MyTheme.fla 拖到 SubcomponentProject.fla 的库中。

    此操作会将该元件添加到"库"面板,但不会在文档中显示该元件。

  6. 请执行以下操作之一:
    • 如果要更改文档中的所有滚动条,请在时间轴第 1 帧的"动作"面板上输入以下代码:
      import mx.controls.List;
      import mx.controls.scrollClasses.ScrollBar;
      ScrollBar.prototype.downArrowDownName = "MyScrollDownArrowDown";
      

    然后可以在第 1 帧上输入以下代码,以动态创建列表:

    createClassObject(List, "myListBox", 0, {dataProvider: ["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]});
    

    或者,也可以将 List 组件从库拖到舞台。

    • 如果要更改文档中的特定滚动条,请在时间轴第 1 帧的"动作"面板上输入以下代码:
      import mx.controls.List
      import mx.controls.scrollClasses.ScrollBar
      var oldName = ScrollBar.prototype.downArrowDownName;
      ScrollBar.prototype.downArrowDownName = "MyScrollDownArrowDown"; 
      createClassObject(List, "myList1", 0, {dataProvider: ["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]}); 
      myList1.redraw(true);
      ScrollBar.prototype.downArrowDownName = oldName;
      

    注意

    设置足够多的数据,以便显示滚动条,或者将 vScrollPolicy 属性设置为 true

  7. 选择"控制">"测试影片"。

您还可以通过以下方法为文档中的所有组件设置子组件外观:在外观元件的 #initclip 部分对子组件的 prototype 对象设置外观属性。

使用 #initclip 将经过编辑的外观应用到文档中的所有组件:

  1. 按照创建新组件外观中的步骤操作,但编辑的是滚动条外观。对于本示例,编辑 ScrollDownArrowDown 外观并为它指定新名称 MyScrollDownArrowDown
  2. 选择"文件">"新建",创建一个新的 Flash 文档。使用唯一名称(如 SkinsInitExample.fla)保存该文件。
  3. 从编辑过的主题库范例的库中选择 MyScrollDownArrowDown 元件,将其拖到 SkinsInitExample.fla 的库中。

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

  4. 在 SkinsInitExample.fla 库中选择 MyScrollDownArrowDown,然后从"库"选项菜单中选择"链接"。
  5. 选中"为 ActionScript 导出"复选框。单击"确定"。

    "在第一帧导出"应自动选中,如果没有,请选中它。

  6. 双击库中的 MyScrollDownArrowDown,在元件编辑模式下将其打开。
  7. 在 MyScrollDownArrowDown 元件的第 1 帧上输入以下代码:
    #initclip 10
        import mx.controls.scrollClasses.ScrollBar;
        ScrollBar.prototype.downArrowDownName = "MyScrollDownArrowDown";
    #endinitclip
    
  8. 请执行下列操作之一将 List 组件添加到文档中:
    • 将 List 组件从"组件"面板拖到舞台上。输入足够多的标签参数,以便垂直滚动条能够显示出来。
    • 将 List 组件从"组件"面板拖到库中。在 SkinsInitExample.fla 主时间轴第 1 帧上输入下列代码:
      createClassObject(mx.controls.List, "myListBox1", 0, {dataProvider: ["AL","AR","AZ", "CA","HI","ID", "KA","LA","MA"]});
      

    注意

    添加足够多的数据,以便垂直滚动条可以显示出来,或者将 vScrollPolicy 设置为 true

下面的示例解释如何为舞台上已有的对象设置外观。本示例仅设置 List 滚动条的外观,而不设置任何 TextArea 或 ScrollPane 滚动条的外观。

使用 #initclip 将经过编辑的外观应用到文档中的特定组件:

  1. 按照编辑文档中的组件外观中的步骤操作,但编辑的是滚动条外观。对于本示例,编辑 ScrollDownArrowDown 外观并为它指定新名称 MyScrollDownArrowDown
  2. 选择"文件">"新建",创建一个 Flash 文档。
  3. 选择"文件">"保存",并为该文件指定唯一的名称,如 MyVScrollTest.fla
  4. 将 MyScrollDownArrowDown 从主题库拖到 MyVScrollTest.fla 库。
  5. 选择"插入">"新建元件",并为该元件指定唯一的名称,如 MyVScrollBar
  6. 选中"为 ActionScript 导出"复选框。单击"确定"。

    "在第一帧导出"应自动选中,如果没有,请选中它。

  7. MyVScrollBar 元件的第 1 帧上输入以下代码:
    #initclip 10
        import MyVScrollBar
        Object.registerClass("VScrollBar", MyVScrollBar);
    #endinitclip
    
  8. 将 List 组件从"组件"面板拖到舞台上。
  9. 在"属性"检查器中,输入足够多的 Label 参数,以便显示垂直滚动条。
  10. 选择"文件">"保存"。
  11. 选择"文件">"新建",创建一个新的 ActionScript 文件。
  12. 输入以下代码:
    import mx.controls.VScrollBar
    import mx.controls.List
    class MyVScrollBar extends VScrollBar{
        function init():Void{
            if (_parent instanceof List){
                downArrowDownName = "MyScrollDownArrowDown";
            }
            super.init();
        }
    }
    
  13. 选择"文件">"保存",将该文件保存为 MyVScrollBar.as
  14. 单击舞台上的空白区域,然后在"属性"检查器中,单击"发布设置"按钮。
  15. 单击"ActionScript 版本设置"按钮。
  16. 单击"添加新路径"(+) 按钮添加新的类路径,然后选择"目标"按钮浏览到 MyVScrollBar.as 文件在硬盘上的位置。
  17. 选择"控制">"测试影片"。