Flash AS3 ReferenceError:错误#1056:无法在flash.text.TextField上创建属性字体

时间:2011-03-01 10:54:33

标签: flash actionscript-3 fonts

首先让我警告你,我是“老上学”,即代码在我的时间轴上,并且使用的唯一类是当我向Script1.swf添加几个新字体时自动创建的,这是我的嵌入字体的movieclip。 / p>

在我的主要动画片段的第一帧(名为Round.fla)上,我已经使用loader对象加载了包含字体的Script1.swf。我正在使用一个跟踪语句,显示已加载Script1_lb.swf。

我正在使用带有movieclip图标的列表框(script1_lb)(示例字体的jpg图片),数据是字体类的名称,如下所示:

script1_lb.dataProvider.addItem( {icon:akaDora_mc, data:"akaDora"} );

我想将字体应用于舞台上已经存在的文本字段(design_mc.info_txt),所以这是我使用的代码:

import flash.text.Font;
import flash.text.TextField;
var tff:TextFormat = new TextFormat();
var font:Font=new Font();

script1_lb.addEventListener(Event.CHANGE,getFont);

function getFont(event:Event):void {
tff.font = script1_lb.selectedItem.data;
MovieClip(parent).design_mc.info_txt.embedFonts = true;
MovieClip(parent).design_mc.info_txt.setTextFormat(tff.font);

}

当尝试应用字体akaDora时,这是我得到的错误:

TypeError:错误#1034:类型强制失败:无法将“akaDora”转换为flash.text.TextFormat。

我一直在看这几个小时并阅读帮助文件,但似乎无法看到我可能会遗漏的内容。有人可以帮忙吗?感谢

1 个答案:

答案 0 :(得分:1)

看起来你试图将文本格式设置为TextFormat对象的字体,而不是实际的TextFormat,setTextFormat()方法接受它作为参数:

你有这个:

MovieClip(parent).design_mc.info_txt.setTextFormat(tff.font);

将其更改为:

MovieClip(parent).design_mc.info_txt.setTextFormat(tff);