2011-01-10 147 views
0

alt text一半的信是一種顏色,另一半另一種顏色

我想知道是否有可能有一個是由多種顏色的信。例如上面你會看到一封希伯來文字母。它下面的DOT實際上是字母的一部分,但它是一種不同的顏色。

是否有可能在Flash中具有相同的功能?我需要做的就是上傳一個包含所有單詞的XML文件,並且我需要將字母下方的所有點用作不同的顏色。

信來自這個網站:

http://www.oryanit.com/site/2.1.asp?user=oryanit&site=56

回答

1

你不能用動態的TextField恐怕這樣做在Flash。

+0

@heartcode我能做到這一點它 – 2011-01-10 17:24:00

+0

@herrow隨着一些矢量圖形的技巧,你可以做到這一點! – bzlm 2011-01-10 17:29:29

0

這裏是一個基本的例子:

import flash.text.TextField; 
import flash.text.TextFormat; 
import flash.display.BitmapData; 
import flash.display.Bitmap; 
import flash.geom.Rectangle; 
import flash.geom.Point; 

/* 
* This is your character 
*/ 
var tf:TextField = new TextField(); 
tf.selectable = false; 
tf.text = "B"; 
addChild(tf); 
var fmt:TextFormat = new TextFormat(); 
fmt.size = 50; 
tf.setTextFormat(fmt); 

//Creating a bitmapData from the TextField 
var tfBD:BitmapData = new BitmapData(tf.textWidth, tf.textHeight); 
tfBD.draw(tf); 
var tfB:Bitmap = new Bitmap(tfBD); 
addChild(tfB); 

//Creating the top part of the character 
var tfTopBD:BitmapData = new BitmapData(tfBD.width, tfBD.height/2); 
tfTopBD.copyPixels(tfBD, new Rectangle(0, 0, tfBD.width, tfBD.height/2), new Point(0, 0)); 
var tfTopB:Bitmap = new Bitmap(tfTopBD); 
addChild(tfTopB); 

//Creating the bottom part of the character 
var tfBottomBD:BitmapData = new BitmapData(tfBD.width, tfBD.height/2); 
tfBottomBD.copyPixels(tfBD, new Rectangle(0, tfBD.height/2, tfBD.width, tfBD.height/2), new Point(0, 0)); 
var tfBottomB:Bitmap = new Bitmap(tfBottomBD); 
addChild(tfBottomB); 


tfB.x = Math.round(stage.stageWidth/2 - tfB.width/2); 
tfB.y = Math.round(stage.stageHeight/2 - tfB.height/2); 
tf.x = tfB.x - 50; 
tf.y = tfB.y; 
tfTopB.x = tfB.x + 50; 
tfTopB.y = tfB.y; 
tfBottomB.x = tfB.x + 50; 
tfBottomB.y = tfB.y + tfTopB.height + 10; 

基本上我創建兩個BitmapData對象和我文本框的內容複製到他們,所以我得到的頂部和字符的底部。然後,您可以根據需要重新着色。

對於AS3着色我會建議使用使用GreenSock補間引擎,嘩嘩我更喜歡使用colorMatrixes等醜陋的東西。 http://www.greensock.com/

希望它適合你, 羅布

相關問題