Flash组件之旅(2):组件样式(1)
来源:中国艺术设计联盟作者:chila_blus发布时间:2005-01-02

  组件的样式

  1、组件的样式方法

  Flash提供给我们的组件很单调,无论是颜色还是样式,都不能满足多姿多彩的网络的需求。庆幸的是我们可以通过组件的FStyleFormat对象来改变组件的颜色,可以通过手工的方式修改UI组件的外观。也可以自己来制作组件。 在库中有一个“Component Skins”元件文件夹,该文件夹里存储着构成组件的各个部件,这些部件都是一些影片剪辑元件,可以编辑。而元件文件夹“Developer Only”中则存储了组件的相关代码。这些代码一般用户可不要随便改动哦。

  使用FStyleFormat对象来改变组件的颜色样式的方法可以分成三种。一是使用setStyleProperty()方法设置组件的样式;再是先定义一个新的FstyleFormat对象类型。

  然后用新的FstyleFormat对象类型调用组件的属性构成一个新的样式表,接着可以让组件使用对象中的addListener()方法来套用这个样式表。譬如下面这段代码:

// 改变组件字体的颜色,其中方法的功能参见文后表1

// mycomponent就是调用新样式表的组件
var myStyle = new FStyleFormat();
myStyle.textFont = "Arial";
myStyle.textColor = 0xB6A1C0;
myStyle.addListener(mycomponent);

  最后,还可以通过globalStyleFormat建立一个全局样式表。

  FstyleFormat对象有addListener()、applyChanges()、removeListener()这三个方法

  applyChanges()方法有两种使用形式,一是指定修改样式表中的属性,既允许只使用方法的参数中设置的样式表属性,二是可以使用所有的属性设定。applyChanges()方法中的参数是组件的样式属性的名称。

  // 以下的代码只允许使用“arrow”和“background”样式属性的设定

globalStyleFormat.arrow = 0x00ffaa;
globalStyleFormat.background = 0xaabbcc;
globalStyleFormat.check = 0x000000;
globalStyleFormat.highlight = 0xffffff;
globalStyleFormat.applyChanges("arrow", "background");

  使用applyChanges()方法时,如果方法中没有参数,则所有组件的样式属性都会被改变。通过globalStyleFormat对象可以修改组件的样式属性,但globalStyleFormat对象是全局的,使用它所有的组件的样式属性都会改变。

  removeListener()方法用来删除组件现有的样式属性,其使用语法如下:

  myStyleFormat.removeListener(mycomponent);

  removeListener()方法中的参数就是需要删除样式属性的组件的名称。removeListener()方法可以由globalStyleFormat对象来调用,用于删除由globalStyleFormat对象定义的全局样式属性。

  addListener()方法可以指定可以改变样式的组件。如globalStyleFormat.addListener(myListBox, myComboBox, myScrollBar);,其参数就是使用自定义样式表的组件的实例名。



本篇编辑:chila_blus