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

Flash AS3 ReferenceError:错误#1056:无法在Flash.text.TextField上创建属性字体,flash,actionscript-3,fonts,Flash,Actionscript 3,Fonts,首先,我要警告你,我是“老派”,即代码在我的时间线上,使用的唯一类是那些在我向Script1.swf添加几个新字体时自动创建的类,Script1.swf是我用于嵌入字体的movieclip 在名为Round.fla的主movieclip的第一帧上,我使用loader对象加载了Script1.swf,其中包含字体。我使用的跟踪语句显示已加载Script1_lb.swf 我正在使用一个带有movieclip图标(示例字体的jpg图片)的列表框(script1_lb),数据是字体类的名称,如下所示:

首先,我要警告你,我是“老派”,即代码在我的时间线上,使用的唯一类是那些在我向Script1.swf添加几个新字体时自动创建的类,Script1.swf是我用于嵌入字体的movieclip

在名为Round.fla的主movieclip的第一帧上,我使用loader对象加载了Script1.swf,其中包含字体。我使用的跟踪语句显示已加载Script1_lb.swf

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

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


我已经看了几个小时,阅读了帮助文件,但似乎看不到我可能遗漏了什么。有人能帮忙吗?感谢

似乎您正在尝试将文本格式设置为TextFormat对象的字体,而不是实际的TextFormat,setTextFormat()方法将其作为参数接受:

你有这个:

MovieClip(parent).design_mc.info_txt.setTextFormat(tff.font);
将其更改为:

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

谢谢,我做了更改,现在文本字段消失了。我搜索了StackOverflow,现在看到应该将上面的行更改为:MovieClip(parent);这是正确的,因为现在我没有得到错误,但文本字段仍然消失。感谢Arkin提供的答案是正确的。我再次按照建议更改了代码,然后意识到我遗漏了:Font.registerFont(akaDora);在存储字体的Script1.swf中。感谢达金花时间回复。