设置容器上的继承样式

继承样式 是从文档的 MovieClip 层次结构中的父组件继承其值的样式。如果未在实例、自定义或类级别设置文本或颜色样式,则 Flash 会在 MovieClip 层次结构中搜索该样式值。因此,如果在容器组件上设置样式,容器组件将继承这些样式设置。

以下样式是继承样式:

样式管理器向 Flash 告知样式是否继承了它的值。附加样式也可以在运行时作为继承样式添加进来。有关详细信息,请参阅《ActionScript 2.0 组件语言参考》中的"StyleManager 类"

注意

Flash 组件和 HTML 页面在实现层叠样式表时的一个主要不同之处是 Flash 组件不支持 CSS inherit 值。组件设计或者继承样式,或者不继承样式。

继承的样式具有高于全局样式的优先级。有关样式优先级的列表,请参阅在同一个文档中使用全局、自定义和类样式

下面的示例演示继承样式如何与 Accordion 组件一起使用,Accordion 组件在 Flash 中可用。

创建具有由各个 Accordion 窗格中的组件继承的样式的 Accordion 组件:

  1. 打开一个新的 FLA 文件。
  2. 将 Accordion 组件从"组件"面板拖到舞台上。
  3. 使用"属性"检查器命名 Accordion 组件并设置其大小。对于本示例,为组件指定实例名称 accordion
  4. 将 TextInput 组件和 Button 组件从"组件"面板拖到库中。

    将组件拖到库中后,这些组件即可在运行时供脚本使用。

  5. 在时间轴的第一帧中添加以下 ActionScript:
    var section1 = accordion.createChild(mx.core.View, "section1", {label: "First Section"});
    var section2 = accordion.createChild(mx.core.View, "section2", {label: "Second Section"});
    
    var input1 = section1.createChild(mx.controls.TextInput, "input1");
    var button1 = section1.createChild(mx.controls.Button, "button1");
    
    input1.text = "Text Input";
    button1.label = "Button";
    button1.move(0, input1.height + 10);
    
    var input2 = section2.createChild(mx.controls.TextInput, "input2");
    var button2 = section2.createChild(mx.controls.Button, "button2");
    
    input2.text = "Text Input";
    button2.label = "Button";
    button2.move(0, input2.height + 10);
    

    以上代码将两个子项添加到 Accordion 组件,然后为每个子项加载一个 TextInput 控件和一个 Button 控件,本示例使用这些控件来演示样式继承。

  6. 在添加样式继承前选择"控制">"测试影片"查看文档。
  7. 在第一帧的脚本结尾处添加以下 ActionScript:
    accordion.setStyle("fontStyle", "italic");
    
  8. 选择"控制">"测试影片"查看所做的更改。

请注意,Accordion 组件上的 fontStyle 设置不仅影响 Accordion 文本本身,还影响 Accordion 组件内与 TextInput 和 Button 组件关联的文本。