2011-04-19 30 views
2

因爲我是一個可怕的壞人,他喜歡以不同的方式做不同的事情, 我希望能夠像mySprite.graphics.drawText(...)那樣做一些事情。as3 - 將文本直接呈現給Sprite.graphics?

據我瞭解,目前獲取文本的唯一方法是創建一個TextField並將其添加爲mySprite的子項。在我的特殊情況下,我寧願不這樣做。

任何意見讚賞!

OOO

+0

爲什麼要畫符OER使用的字體? – 2011-04-19 21:02:31

+0

我想有一個沒有孩子的精靈。 – 2011-04-22 00:34:08

+0

我會與答案昇華系統給你,因爲這會給你一個「扁平」精靈沒有chidlren – 2011-04-22 01:02:09

回答

0

如果你想包起來雪碧的方法,我想簡單地擴展Sprite類,函數的drawText添加到它。在該方法中添加TextField等。但它聽起來不像你想要的那樣。

在這種情況下,看看這裏 http://lab.polygonal.de/?p=916

他們創造的代碼,可以渲染字體不,好,字體的集合。有文件大小等缺點,但它是可能的。

+0

,看起來不錯! – 2011-04-22 00:39:24

+0

沒問題,希望它有幫助 – Chris 2011-04-22 00:49:56

+0

對不起,這個答案確實會導致OP在錯誤的方向。這裏的另一個答案是一個直接和準確的方法。 – iND 2012-02-27 19:07:48

7

錯誤的bzzzzzzzt創建一個新的BitmapData對象,創建一個位圖,將bitmapData添加到它,然後將該位圖添加爲您的精靈的一個孩子。例如:

var myTextImage:BitmapData = new BitmapData(textField.width, textField.height, true, 0x000000ff); 

myTextImage.draw(textField); 

mySprite.addChild(new Bitmap(myTextImage)); 

stage.addChild(mySprite); 

我剛纔提出的代碼了,所以你必須去適應它,但原則應該是足夠清晰,以使其適應您的項目更多。

+0

所以這樣你創建一個textField對象,寫你的文字,但不要添加到你的SPRITE。只需繪製它,然後就可以清除並刪除textField。你添加到你的精靈的是一個帶有該文本的位圖。 – 2011-04-19 22:50:30

+0

謝謝。這是一個有趣的方法,可能會比添加文本字段本身更具性能。我應該更清楚 - 我希望不要添加任何類型的孩子。我想我可以將文本字段繪製爲位圖數據,然後通過beginBitmapFill將其轉換爲我的精靈圖形。 – 2011-04-22 00:39:09

+0

這個答案是最好的方法。 – iND 2012-02-27 19:05:11

6

創建一個新的BitmapData對象:bitmapdata = new BitmapData(txt.width, txt.height, true, 0x000000ff);

畫上你的文本框:bitmapdata.draw(txt);

然後用圖形類和它的作品!

sprite.graphics.beginBitmapFill(bitmapdata); 
sprite.graphics.drawRect(0,0,txt.width,txt.height); 
sprite.graphics.endFill(); 

Ç雅

+0

可以有任何可以複製和粘貼的完整代碼。所以我可以理解你的意思。謝謝。 – DevelopmentBucket 2013-09-03 14:20:30