flex 中的背景圖片平鋪

在canvas裏面放了背景圖片,結果不能實現平鋪,找到幾種方法解決這個問題:canvas

1 寫一個皮膚文件給border(邊框)ide

皮膚:spa

  
  
  
  
  1. package  
  2. {    
  3.     import flash.geom.Rectangle;    
  4.     
  5.     import mx.graphics.BitmapFill;    
  6.     import mx.skins.ProgrammaticSkin;    
  7.     import flash.text.StyleSheet;  
  8.     
  9.     public class RepeatBackground extends ProgrammaticSkin {    
  10.         public function RepeatBackground() {  
  11.         }  
  12.  
  13.         override protected function updateDisplayList(w:Number, h:Number):void {    
  14.             super.updateDisplayList(w,h);    
  15.               
  16.             graphics.clear();  
  17.             var b:BitmapFill = new BitmapFill();    
  18.             b.source = getStyle("backgroundImage");;    
  19.             b.begin(graphics,new Rectangle(0,0,w,h));    
  20.             graphics.drawRect(0,0,w,h);    
  21.             b.end(graphics);    
  22.         }    
  23.     }  
  24. }   

使用:xml

  
  
  
  
  1. mx|Canvas  
  2. {  
  3.     backgroundImage: Embed(source="assets/bg1.gif");   
  4.     border-skin:Cla***eference("RepeatBackground");  

2 使用Group 用重複的背景圖片填充 設置fillMode屬性:圖片

  
  
  
  
  1. <s:Group width="100%" height="100%" > 
  2.         <s:Rect width="100%" height="100%"> 
  3.             <s:fill> 
  4.                 <s:BitmapFill source="@Embed('assets/1111.jpg')" fillMode="repeat"/>   
  5.             </s:fill> 
  6.         </s:Rect> 
  7.     </s:Group> 

3  使用BorderContainer 容器 它自帶北京圖片平鋪的屬性:get

  
  
  
  
  1. <s:BorderContainer width="100%" height="100%" backgroundImage="@Embed('assets/1111.jpg')" backgroundImageFillMode="repeat"> 
  2.         <s:Button label="11111"/> 
  3.     </s:BorderContainer>
相關文章
相關標籤/搜索