2010-02-26 41 views
9

Có cách nào để vẽ văn bản trong DisplayObject hoặc Hình dạng chỉ sử dụng ActionScript không? Cách duy nhất tôi có thể tìm thấy trên web là tạo một TextField, nhưng tôi không thể thêm TF vào DisplayObject hoặc Shape.Vẽ văn bản trên hình dạng trong ActionScript 3

Edit:

Giải Quyết nhờ viatropos.

Đối với bất cứ ai quan tâm đến đó là:

DisplayObject thực hiện IBitmapDrawable có thể được thông qua như là một cuộc tranh cãi với draw chức năng của một đối tượng BitmapData, mà sau đó có thể được rút ra sử dụng graphics.beginBitmapFill.

var textfield:TextField = new TextField; 
textfield.text = "text"; 

var bitmapdata:BitmapData = new BitmapData(theWidth, theHeight, true, 0x00000000); 
bitmapdata.draw(textfield); 

graphics.beginBitmapFill(bitmapdata); 
graphics.drawRect(0, 0, theWidth, theHeight); 
graphics.endFill(); 

Trả lời

9

Câu hỏi hay. Điều này vượt ra ngoài bất cứ điều gì tôi từng cần làm, nhưng tôi nghĩ rằng tôi biết làm thế nào để làm điều đó.

Hình dạng mở rộng DisplayObject, nhưng không hiển thị DisplayObjectContainer, vì vậy bạn không thể thêm bất kỳ thứ gì vào nó. Nhưng nó không có thuộc tính graphics, vì vậy bạn có thể vẽ mọi thứ vào đó. Cách tốt nhất tôi có thể nghĩ là chụp ảnh bitmap của TextField và vẽ hình đó vào Shape. Tôi biết đây là những gì Degrafa làm cho RasterText của họ (kiểm tra các source, nó thực sự hữu ích).

Nếu bạn thay đổi Hình dạng thành Sprite thay thế, việc này sẽ dễ dàng hơn rất nhiều. Sprite mở rộng DisplayObjectContainer, vì vậy bạn có thể thêm TextField của mình ở đó.

Hy vọng điều đó sẽ giúp ích, Lance

Các vấn đề liên quan