2011-04-11 65 views
0

我在TextFields和caracter嵌入時遇到了一些麻煩。據我所知,在Flash中嵌入字符的方法是在動畫片段中放置一個TextField,並通過某個類名將其導出到actionscript中。然後讓TextField嵌入字符。AS3:嵌入字符

但是,當我嘗試在我的項目中使用該TextField時,我無法自動調整字段的大小了!?有沒有更好的方法來嵌入字符?或者我錯過了一些未知的屬性? (是的,我試過TextField.autoSize = "left" (or "center" or "right"))。

TextField的配置這樣在Flash CS4:
屬性: http://screencast.com/t/0VB6KnNO6G
庫實現: http://screencast.com/t/w3yQLqit0veI

我嵌入包含這樣的文本字段的影片剪輯:

protected var tabname:MovieClip = new Text(); // The property on the object 

添加文本並設置其設置:

var txt:TextField = tabname.txt; 

     if(!contains(tabname)) 
     { 
      addChild(tabname); 

      var format:TextFormat = new TextFormat(); 
       format.bold = true; 
       format.font = "Arial"; 
       format.size = 12; 
       format.align = "left"; 

      var dropShadow = new DropShadowFilter(0); 
       dropShadow.color = 0xFFFFFF; 
       dropShadow.strength = 2; 
       dropShadow.blurX = dropShadow.blurY = 5; 
       dropShadow.alpha = .7; 

      txt.type = TextFieldType.DYNAMIC; 
      txt.multiline = tabname.wordWrap = false; 
      txt.autoSize = TextFieldAutoSize.LEFT; 
      txt.defaultTextFormat = format; 
      txt.filters = [dropShadow]; 
      txt.mouseEnabled = false; 
      txt.x = 10; 
     } 

     txt.text = value; 
     txt.y = Math.ceil((tabmask.height - txt.height) /2); 

回答

1

要嵌入字體,不要依賴將它們包裝到庫中的MovieClip中。他們應該正確地嵌入爲字體。我已經包括以下幾個基本步驟爲嵌入字體,然後根據自己的情況爲例:

1 - 使文本框的動態,並點擊嵌入..按鈕

enter image description here

2 - 名稱的字體用一些有意義的東西(比如字體名稱)並勾選你將要使用的字符集(通常我選擇大寫字母,小寫字母,數字和標點符號)。另請注意,「樣式」爲「粗體」,您需要爲每種樣式嵌入一種字體。所以如果你想使用Bold和Regular,你需要嵌入2種字體。

enter image description here

3 - 如果你打算通過ActionScript動態添加文本框,後藤ActionScript標籤和(再次,使用有意義的名稱)添加一個類爲它

enter image description here

4 - 最後點擊確定,然後離開你。我已經安裝的例子,使用這些步驟,並自動調整大小的方法,你可以使用CS4見下文

enter image description here

+0

嗨,thanx。這爲我清除了一兩件事,但我不知道你如何在字體上嵌入字母。我提醒你我正在使用CS4。 – Tokimon 2011-04-11 22:41:29

+0

在CS4中的文本框仍然有嵌入按鈕,只需點擊文本框,然後轉到它的屬性。希望我的回答有幫助 – Chris 2011-04-11 23:06:18

+0

hm好的......我只是明白,我不需要在動畫片段中包含文本字段來嵌入字符(而不是字體字符)。但我想這不是這種情況?或者是什麼? – Tokimon 2011-04-12 20:25:12

1

在Flash中,您可以單擊TextField字符屬性下方的[Embed ...]按鈕。在你獲得的窗口中,你可以指定你想要在你的文本框中嵌入哪些字符。

關於字體嵌入還有很多話要說,但這是一個簡單的故事。 Flash CS5添加了TLF TextFields,但我不認爲你指的是這些,對吧?

autoSize屬性實際上與字體嵌入無關,但我猜你的TextField不是動態的,當你無法自動調整它的大小時?

您是否在使用CS5或CS4或更早版本?

+0

IM的結果,但我知道,從閃存嵌入字符的方式。但是,在添加包含文本字段的Moieclip後,textfield不會調整大小。但TextField是動態的。我似乎無法改變字體重量....非常討厭。 – Tokimon 2011-04-11 20:09:13

+0

好的,我很抱歉誤解你的問題。有一件事在你的代碼中引起我的興趣:行'txt.multiline = tabname.wordWrap = false;'因爲wordWrap不是MovieClip的屬性,而是TextField的屬性,所以應該讀取'txt.wordWrap'。另外,在代碼中,您實際上並未使用嵌入字體,對嗎?所以整個嵌入的東西可能是不相關的? – frankhermes 2011-04-11 20:31:17