2010-01-04 101 views
0

我有幾個精靈,我試圖通過addChild()組合在一起。 下面是一些僞代碼演示我想完成什麼:AS3:分組精靈

import nav.text.TextSprite; 

spr1:Sprite = new Sprite(); 
spr1.graphics.clear(); 
spr1.graphics.beginFill(0x000000); 
spr1.graphics.drawRect(0,0,100,100); 

txt1:TextSprite = new TextSprite; 
txt1.text = "hello"; 

spr1.addChild(txt1); 

//this is what isn't working: the sprite is hidden but not the text 
spr1.alpha = 0.0; 

出於某種原因,我似乎無法得到TextSprite到正確繪製...所有它是與加給它的文本字段雪碧。我認爲所有的東西都在那裏工作,但我可能會遇到一些錯誤,確保所有的TextSprites子項都正確分組。

我應該提到它的位置正確;但是alpha屬性不會以我期望的方式進行響應。 I.E.,TextField附加的精靈將允許設置它的alpha值,但文本保持可見。

有什麼想法?

回答

1

您需要使用textfield.embedFonts = true嵌入字體。如果你這樣做的話你的文本正在消失,你怎麼去嵌入字體(使用Flex嵌入元標記或使用Flash IDE?),檢查你是否改變字體重量(當你設置文本爲粗體只能嵌入正常重量的字體),如果您使用的是文本格式,請務必在設置textfield.text屬性後應用文本格式。你可以通過使用textfield.defaultTextFormat解決這個問題。

+0

謝謝。我不知道你必須分開嵌入。你有使用Flash API進行嵌入的參考嗎?我覺得這可能是更直接的Flex嵌入元標記,但我會有興趣學習這兩種方法。 – jml 2010-01-05 16:55:03

+0

我看到這個:http://www.trajiklyhip.com/blog/index.cfm/2007/7/18/Embedding-Fonts-in-Flex,我不太喜歡。我認爲我更喜歡使用嵌入元標記,而不是跳出Flex應用程序來混合。 – jml 2010-01-05 17:08:51

+0

有人可以告訴我,如果這真的是唯一的方法來減小文件大小?我也看到了這一點:http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=performance_118_22.html#227950這可能會有所幫助... – jml 2010-01-05 18:41:58

3

很可能你只需要在你的文本框中嵌入字體。嘗試更改spr1的x,y,並查看txt1是否隨其一起移動。如果它真的是一個孩子,那麼它會迴應新的立場。

+0

我似乎記得一個同事不能旋轉文字,直到字體被嵌入,這意味着alpha水平會在同一條船上。 – invertedSpear 2010-01-04 23:49:35

+0

帶有非嵌入字體的動態TextField在處理容器時會做一些令人毛骨悚然的事情。例如,嘗試將掩碼放在TextField上,並關閉嵌入功能,並且永遠不會看到文本。 – sberry 2010-01-04 23:53:34

+0

好吧,我做mytextfield.embedFonts = true;在我通過TextFormat()設置字體道具和格式之後,現在我看不到文本。我究竟做錯了什麼?添加到顯示列表後,我是否需要這樣做? – jml 2010-01-05 00:40:28