发新话题
打印

[教材] 在FLASH中设置文本的字体(利用TextField.getFontList();)

在FLASH中设置文本的字体(利用TextField.getFontList();)

在静态文本或者HTML网页中,设置文本的字体很简单。但要想在FLASH中设置文本的字体,就不是这么简单了。
但也可以实现的,主要利用TextField.getFontList();方法获取系统中安装的字体,然后再根据FLASH支持部分HTML标签这一功能。来实现。
首先,我们获取字体,用TextField.getFontList();其次,我们用数组array进行显示字体,再对数组进行排序。
然后使用ComBobox选择字体,根据选择标签的值来确定动态文本框中的字体信息。

演示:

1、首先,我们要新建一个空MC,然后把MC的“标识符”跟“as2.0类”对象都设成“Tao_ComboFontList”;
2、新建一AS文件,添加如下代码:
引用:
/*---------------- www.taoshaw.com ------------------*/
import mx.core.UIComponent;
class Tao_ComboFontList extends UIComponent {
private var htmlLabel:TextField;
private var textStyle:TextFormat;
private var listOwner:MovieClip;
function Tao_ComboFontList() {
}
private function createChildren():Void {
textStyle = new TextFormat();
textStyle.size = 16;
createTextField("htmlLabel", 0, 0, 0, 0, 0);
htmlLabel.selectable = false;
size();
}
private function size():Void {
htmlLabel.setSize(__width-4, __height);
htmlLabel._x = 0;
htmlLabel._y = 0;
}
private function setValue(str:String, item:Object, sel:Boolean):Void {
htmlLabel._visible = (item != undefined);
textStyle.font = str;
htmlLabel.text = str;
htmlLabel.setTextFormat(textStyle);
}
private function getPreferredHeight():Number {
return listOwner.rowHeight;
}
}
/*---------------- www.taoshaw.com ------------------*/
3、在场景中添加一AS层,添加如下代码:
引用:
/*---------------- www.taoshaw.com -----------------------------*/
//添加监听器,用于接收用户选择字体信息的值;
var myListener:Object = new Object();
myListener.change = function(evtObj:Object):Void {
showText(evtObj.target.value);
};
//=========================获取字体部分开始==================================
//获取字体;
var fontA:Array = TextField.getFontList();
//进行排序;
fontA.sort();
//加载自定义函数信息;
font_cb.dropdown.cellRenderer = "Tao_ComboFontList";
font_cb.dataProvider = fontA;
font_cb.addEventListener("change", myListener);
font_cb.selectedIndex = 0;
function showText(fontName:String):Void {
preview_ta.text = "[size=\"16\"]"+"欢迎光临淘沙网,这里是沙子个人博客。主要提供《色彩搭配研究》、《FLASH项目开发》相关原创教程发布。以及生活情感类日志。欢迎大家有空常来坐坐哦!http://www.taoshaw.com=http://www.taoshaw.com=====http://www.taoshaw.com"+"";
}
showText(font_cb.value);
//=========================组件美化部分结束==================================
//=========================组件美化部分开始==================================
//背景颜色...
_global.styles.ScrollSelectList.setStyle("backgroundColor", 0xF3FEF3);
//换行颜色...
_global.styles.ScrollSelectList.setStyle("alternatingRowColors", [0xF6F6F6, 0xE5E5E5]);
//隐藏边框...
_global.styles.ScrollSelectList.setStyle("borderStyle", "solid");
_global.styles.ScrollSelectList.setStyle("color", 0x0E1901);
//文本颜色
_global.styles.ScrollSelectList.setStyle("backgroundColor", 0xF3FEF3);
//背景颜色
_global.styles.ScrollSelectList.setStyle("borderColor", 0xFFFFFF);
//边框色
_global.styles.ScrollSelectList.setStyle("selectionColor", 0x8FCD00);
//被选中项的背景色
_global.styles.ScrollSelectList.setStyle("textSelectedColor", 0x000000);
//被选中项的文字颜色
_global.styles.ScrollSelectList.setStyle("selectionDuration ", 1000);
//被选中项渐变速度
_global.styles.ScrollSelectList.setStyle("rollOverColor", 0x8FCD00);
//鼠标滑过高亮色
_global.styles.ScrollSelectList.setStyle("textRollOverColor", 0xFFFFFF);
//鼠标滑过文本色
import mx.controls.List;
import mx.controls.scrollClasses.ScrollBar;
ScrollBar.prototype.scrollTrackName = "mc1";
ScrollBar.prototype.thumbTopName = "mc3";
ScrollBar.prototype.thumbMiddleName = "mc2";
ScrollBar.prototype.thumbBottomName = "mc3";
ScrollBar.prototype.upArrowUpName = "mc4";
ScrollBar.prototype.upArrowOverName = "mc4";
ScrollBar.prototype.upArrowDownName = "mc4";
ScrollBar.prototype.downArrowUpName = "mc5";
ScrollBar.prototype.downArrowOverName = "mc5";
ScrollBar.prototype.downArrowDownName = "mc5";
preview_ta.setStyle("borderStyle", "solid");
font_cb.setStyle("borderStyle", "solid");
//=========================组件美化部分结束==================================
/*---------------- www.taoshaw.com ---------------------------------------*/
本文关键词:FLASH设置字体、FLASH中改变文本字体、FLASH字体。

TOP

这个有点用处  换成输入文本框
FLASH Everyday

TOP

**错误** 符号=元件 1, 图层=图层 1, 帧=1:第 1 行: 无法加载类或接口'Tao_ComboFontList'

ActionScript 错误总数:1          报错:1

TOP

我是新手,所以看得很头晕
请见谅

TOP

请问你能设置中文字体吗?这个我以前了也做过,但实际应用不上,因为中文字体都用不了,全都变了宋体,在中国的网站上用不了中文字体,也就等于白做了。
你,听过饭煲吗?值几多百?

TOP

看着头都晕了

TOP

看着头都晕了

MC是什么??数组array是什么??设成“Tao_ComboFontList”;是什么
?? AS文件是什么意思??
   我是个新手  不是狠懂  ~~!!~~望高手联系下qq997790026

TOP

引用:
原帖由 glemon 于 2008-5-10 10:41 发表
请问你能设置中文字体吗?这个我以前了也做过,但实际应用不上,因为中文字体都用不了,全都变了宋体,在中国的网站上用不了中文字体,也就等于白做了。
这位仁兄讲得有道理啊。。。刚开始的时候,没注意看呢,那我得要好好分析一下了。谢谢。

TOP

由于时间有限,不能一个人回答问题。大家如有共同交流的,可以向我要源文件。呵呵。

TOP

TOP

发新话题