【问题标题】:Flash AS3 ReferenceError: Error #1056: Cannot create property font on flash.text.TextFieldFlash AS3 ReferenceError:错误 #1056:无法在 flash.text.TextField 上创建属性字体
【发布时间】:2011-03-02 02:51:05
【问题描述】:

首先让我警告您,我是“老派”,即代码在我的时间轴上,并且唯一使用的类是当我向 Script1.swf 添加几种新字体时自动创建的那些,这是我用于嵌入字体的电影剪辑。

在名为 Round.fla 的主影片剪辑的第一帧上,我使用加载器对象加载了包含字体的 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。

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

【问题讨论】:

    标签: flash actionscript-3 fonts


    【解决方案1】:

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

    你有这个:

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

    改成这样:

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

    【讨论】:

    • 谢谢,我进行了更改,现在文本字段消失了。还有什么地方可以查?
    • 我搜索了 StackOverflow,现在看到我应该将上面的行更改为:MovieClip(parent).design_mc.info_txt.defaultTextFormat = tff;这是正确的吗,因为现在我没有收到错误,但文本字段仍然消失。谢谢
    • TheDarkIn 提供的答案是正确的。我再次按照建议更改了代码,然后意识到我错过了:Font.registerFont(akaDora);在存储字体的 Script1.swf 中。感谢 TheDarkIn 抽出时间回复。
    猜你喜欢
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多