2011-03-18 118 views
-1

是否可以在Flash AS3中創建包含用戶輸入的特定bagroundcolor和som文本的圖像?然後在運行時使用這個圖像?在AS3中創建圖像

// nicke

回答

0

肯定的:

function createTextBox 
(
width : Number, 
height : Number, 
bgColor : uint, 
text : String, 
texFormat : TextFormat) : Sprite 
{ 
var sprite : Sprite = new Sprite(); 
var shape : Shape = new Shape(); 
var textField : TextField = new TextField(); 

//background 
shape.graphics.beginFill(bgColor); 
shape.graphics.drawRect(0, 0, width, height); 
sprite.addChild(shape); 

//textfield 
textfield.width = width; 
textfield.height = height; 
textfield.multiline = true; 
textfield.wordWrap = true; 

//up to you if it serves your needs 
textfield.embedFonts = true; 
textField.selectable = false; 

textField.defaultTextFormat = textFormat; 
sprite.addChild(textField); 

return sprite; 
} 

var format : TextFormat = new TextFormat(); 
format.color = 0xFF0000; 
format.size = 12; 

var myText : String = "A woman is just a woman but a good cigar is a smoke!" 

var sprite : Sprite = createTextBox(200, 200, 0x999999, myText, format); 
addChild(sprite); 

//if you want, you can covert this to a bitmap: 

var bitmapData : BitmapData = new BitmapData(200, 200, false); 
bitmapData.draw(sprite); 

var bitmap : Bitmap = new Bitmap(bitmapData); 
bitmap.x = 200; 
addChild(bitmap); 
1

這裏是有點僞代碼,可以幫助你畫一個圖形,然後創建它的一個位圖對象。

w = 400; 
h = 400; 

var shape:Shape = new Shape(); 
shape.graphics.beginFill(0xFF0000, 1); 
shape.graphics.drawRect(0, 0, w, h); 
shape.graphics.endFill(); 

var field:TextField = new TextField(); 
field.text = someUserInput; 
shape.addChild(field); 

var bitmap:Bitmap = new Bitmap(); 
var bitmapData:BitmapData = new BitmapData(w, h); 
bitmapData.draw(shape); 
bitmap.bitmapData = bitmapData; 

addChild(bitmap); 

從這裏你可以使用Adobe的核心庫創建一個實際的JPEG或PNG文件:

var jpgEncoder:JPGEncoder = new JPGEncoder(quality); 
var jpgStream:ByteArray = jpgEncoder.encode(bitmapData);