styleSheet和TextFormat类似,也是用来定义文本格式的,二者实现的效果也差不多。但是,styleSheet和TextFormat之间,是存在兼容冲突的,设置了styleSheet的文本,将无法再使用TextFormat类,否则编译时会产生报错信息。

      那么,这两者之间的区别是什么呢,我大致归纳了下,有以下几点:

      (1) styleSheet只能对HtmlText使用,如果没有设置该属性则无法使用。TextFormat则不受该限制影响。

      (2) styleSheet可以通过修改外部CSS文件来变更文字格式,不用重新编译生成的SWF文件,这个也是styleSheet最大的优势。

      (3) 设置了styleSheet的文本字段是不可以再编辑的。所以如果是一个输入文本的话,应该避免使用styleSheet

      由上也可以看到,CSS虽然说可以在Flash文件中创建,但我觉得,只有外部加载的CSS文件才有意义,否则,真的体现不出styleSheet的优势了。同时,如果你要应用styleSheet的话,建议先看下帮助,因为Flash支持的styleSheet样式元素并不多。

 

      下面我介绍下如何加载外部CSS文件,首先,我们要创建一个CSS文件,CSS文件我就完全不懂了,所以只好抄袭一段代码来,大家把下面这段代码复制到文本文件,然后命名为example.css,和Flash文件放在同一个目录下:

p {

font-family: Times New Roman, Times, _serif;

font-size: 14;

}

h1 {

font-family: Arial, Helvetica, _sans;

font-size: 20;

font-weight: bold;

}

.bluetext {

color: #0000CC;

}

 

      如果正确套用该CSS文件,文本会呈现蓝色字体。然后我们打开Flash,写入AS代码如下:

var loader:URLLoader = new URLLoader();

var req:URLRequest = new URLRequest("example.css");

loader.load(req);

loader.addEventListener(Event.COMPLETE, onLoaded);

function onLoaded(event:Event) {

var sheet:StyleSheet = new StyleSheet(); //定义styleSheet实例

sheet.parseCSS(loader.data); //解析外部CSS文件

var myText:TextField = new TextField();

myText.styleSheet = sheet; //调用styleSheet实例

myText.htmlText = "<span class='bluetext'>测试文本</span>"; //采用styleSheet

addChild(myText);

}

 

      最后我再做点补充说明:

      (1) 首先要创建styleSheet实例,然后用parseCSS()方法解析读取的外部CSS文件

      (2) 必须在设置htmlText属性之前应用样式表,否则CSS样式是不会生效的。

      (3) 在htmlText文件中调用CSS的方法和正式网页中相同。