2011-03-01 70 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

相關問題