flex 文字淡入淡出效果

flex之 Text Effect 問題
關鍵字: flex text effect
通常Flex中的文字是不會有漸變效果的, 除非...

嵌入字體: 即在編譯時嵌入字體文件(eg: simhei.ttf  黑體).

Xml代碼 
    
 

Java代碼 複製代碼
  1. [Embed("assets/simhei.ttf", fontName="simhei")]      
  2.      
  3. public var simhei_font:Class;      
  4.      
  5. <mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>     
  6.      
  7. <mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>     
  8.      
  9. <mx:Label id="label1" text="Hello World"       
  10. fontFamily="simhei" fontSize="24"     
  11. hideEffect="{fadeOut}" showEffect="{fadeIn}"/>     
  12.   
  13.     
  14.   
  15. [Embed("assets/simhei.ttf", fontName="simhei")]   
  16.   
  17. public var simhei_font:Class;   
  18.   
  19. <mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>   
  20.   
  21. <mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>   
  22.   
  23. <mx:Label id="label1" text="Hello World"    
  24. fontFamily="simhei" fontSize="24"  
  25. hideEffect="{fadeOut}" showEffect="{fadeIn}"/>  
[Embed("assets/simhei.ttf", fontName="simhei")]   
  
public var simhei_font:Class;   
  
<mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>  
  
<mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>  
  
<mx:Label id="label1" text="Hello World"    
fontFamily="simhei" fontSize="24"  
hideEffect="{fadeOut}" showEffect="{fadeIn}"/>  

 

[Embed("assets/simhei.ttf", fontName="simhei")]

public var simhei_font:Class;

<mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>

<mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>

<mx:Label id="label1" text="Hello World" 
fontFamily="simhei" fontSize="24"
hideEffect="{fadeOut}" showEffect="{fadeIn}"/>





缺點就是會增大程序文件的大小.雖然Character Range能夠起一定的作用,還是會很大(尤其是中文).

還好,有個比較簡單的方式,既不增加程序文件大小,又能夠實現效果.那就是加一個Blur Filter.



Java代碼
Java代碼 複製代碼
  1. private function addBlurFilter():void {      
  2.      
  3.  var bf:BlurFilter = new BlurFilter(0,0,0);      
  4.      
  5.  var myFilters:Array = new Array();      
  6.      
  7.  myFilters.push(bf);      
  8.      
  9.  label3.filters = myFilters;     
private function addBlurFilter():void {   
  
 var bf:BlurFilter = new BlurFilter(0,0,0);   
  
 var myFilters:Array = new Array();   
  
 myFilters.push(bf);   
  
 label3.filters = myFilters;   




Xml代碼
 
Java代碼 複製代碼
  1. <mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" lphaTo="0.0"/>     
  2.      
  3. <mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>     
  4.      
  5. <mx:Label id="label3" text="Hello World" fontSize="24"       
  6. hideEffect="{fadeOut}" showEffect="{fadeIn}"/>  
<mx:Fade id="fadeOut" duration="1000" alphaFrom="1.0" lphaTo="0.0"/>  
  
<mx:Fade id="fadeIn" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>  
  
<mx:Label id="label3" text="Hello World" fontSize="24"    
hideEffect="{fadeOut}" showEffect="{fadeIn}"/>



在初始化的時候調用addBlurFilter, 文字會被轉成圖(Blur Filter的緣故).這樣就很好的解決了文字效果的問題。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章