var repeat:RepeatBackground = new RepeatBackground();
                                addChild(repeat);
                                repeat.percentHeight = 100;
                                repeat.percentWidth = 100;




package
{
        import mx.containers.Canvas;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Graphics;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    import flash.geom.Matrix;
    import flash.net.URLRequest;
    import flash.display.Sprite;
    
    import mx.controls.Image;
    import mx.core.BitmapAsset;
    import mx.graphics.RectangularDropShadow;
    import mx.skins.RectangularBorder;
    import mx.core.Application;
    import mx.core.UIComponent;
    
        public class RepeatBackground extends Canvas
        {
                public function RepeatBackground()
                {
                        super();
                }

                private var tile:BitmapData;
        
        [Embed(source='assets/main_bg.png')]    
        private var imgCls:Class;
        
        override protected function updateDisplayList(unscaledWidth:Number, 
unscaledHeight:Number):void {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            
            if( this.parent != null ) {
                if( imgCls == null ) {
                    var backgroundImage:Object = UIComponent( this.parent 
).getStyle( "backgroundImage" );
                    if( backgroundImage != null && backgroundImage != "" ) {
                        imgCls = Class( backgroundImage );
                        (this.parent as UIComponent).setStyle( 
"backgroundImage", "" );
                    }
                }
                if( imgCls != null ) {
                    try {
                        var background:BitmapAsset = BitmapAsset(new imgCls());
                        tile = background.bitmapData;
                        
                        var transform: Matrix = new Matrix();

                                                alpha = .5;        
                        graphics.clear();
                        graphics.beginBitmapFill(tile, transform, true, true);
                        graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
                    } catch( e:TypeError ) {
                        // Throw an custom error if imgCls is not a valid type
                        throw new Error( "backgroundImage value is not a valid 
image class" );
                    } finally {
                        ;// Catch all just ignore
                    }
                }
            }
        }

                
        }
}



--- In flexcoders@yahoogroups.com, "Wally Kolcz" <wko...@...> wrote:
>
> Does anyone know, or have a link to an example, for a tutorial on how to 
> repeat a background for a component? I want to apply a repeating texture to 
> either a Canvas or VBox but cannot seem to find a good working example. Found 
> a ton that work for the Application. Thanks!
>


Reply via email to