2011-03-01 47 views
0

首先让我告诉你我是“老派”,即代码位于我的时间轴上,唯一使用的类是那些自动创建的类我向Script1.swf添加了几个新字体,这是我的嵌入式字体动画片段。Flash AS3 ReferenceError:错误#1056:无法在flash.text.TextField上创建属性字体

在名为Round.fla的主要动画片段的第一帧上,我使用加载器对象加载了包含字体的Script1.swf。我使用的trace语句显示Script1_lb.swf已加载。

我使用一个列表框(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,这是我的错误m得到:

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

我一直在看这个小时,阅读帮助文件,但似乎无法看到我可能会失踪。有人可以帮忙吗?由于

回答

1

它出现在您尝试设置文本格式的TextFormat对象的字体,而不是实际的TextFormat,其中setTextFormat()方法接受,因为它的参数:

你有这样的:

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

更改为:

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

谢谢,我做了更改,现在textfield消失。我可以检查的任何地方? – Pete 2011-03-01 17:46:54

+0

我搜索了StackOverflow,现在看到我应该将上面的行更改为:MovieClip(parent).design_mc.info_txt.defaultTextFormat = tff;这是正确的,因为现在我没有得到错误,但文本字段仍然消失。谢谢 – Pete 2011-03-01 17:53:24

+0

TheDarkIn提供的答案是正确的。我再次改变了代码,然后意识到我错过了: Font.registerFont(akaDora);在存储字体的Script1.swf中。 感谢TheDarkIn花时间做出回应。 – Pete 2011-03-02 01:28:11

相关问题