topical media & game development

talk show tell print

#graphic-flex-image-effects-07-source-aether-textures-synthetic-TileTexture.ax

#graphic-flex-image-effects-07-source-aether-textures-synthetic-TileTexture.ax [swf] [flash] flex


  package aether.textures.synthetic {
          
          import aether.textures.ITexture;
  
          import flash.display.BitmapData;
          import flash.display.Sprite;
          import flash.filters.BevelFilter;
          import flash.filters.BitmapFilterType;
          import flash.geom.Matrix;
          import flash.geom.Point;
          import flash.geom.Rectangle;
          import flash.display.Shape;
          
          public class @ax-graphic-flex-image-effects-07-source-aether-textures-synthetic-TileTexture implements ITexture {
                  
                  private var _tileColor:uint;
                  private var _groutColor:uint;
                  private var _tileSize:Number;
                  private var _gutter:Number;
                  private var _tileCornerRadius:Number;
                  private var _depth:Number;
                  private var _knockout:Boolean;
                  private var _bevelStrength:Number;
                  
                  public function @ax-graphic-flex-image-effects-07-source-aether-textures-synthetic-TileTexture(
                          tileSize:Number,
                          tileColor:uint,
                          pGutter:Number,
                          pGroutColor:uint,
                          pDepth:Number=2,
                          tileCornerRadius:Number=0,
                          pBevelStrength:Number=1,
                          pKnockout:Boolean=false
                  ) {
                          _tileColor = tileColor;
                          _groutColor = pGroutColor;
                          _tileSize = tileSize;
                          _gutter = pGutter;
                          _tileCornerRadius = tileCornerRadius;
                          _depth = pDepth;
                          _knockout = pKnockout;
                          _bevelStrength = pBevelStrength;
                  }
          
                  public function draw():BitmapData {
                          var size:Number = _tileSize + _gutter;
                          var bitmap:BitmapData = new BitmapData(size, size, true, 0x000000);
                          var container:Sprite = new Sprite();
                          container.graphics.beginFill(_groutColor, 1);
                          container.graphics.drawRect(0, 0, size, size);
                          container.graphics.drawRoundRect(_gutter, _gutter, _tileSize, _tileSize, _tileCornerRadius, _tileCornerRadius);
                          container.graphics.endFill();
                          var tile:Shape = new Shape();
                          tile.graphics.beginFill(_tileColor, 1);
                          tile.graphics.drawRoundRect(0, 0, _tileSize, _tileSize, _tileCornerRadius, _tileCornerRadius);
                          tile.graphics.endFill();
                          tile.filters = [new BevelFilter(_depth, 45, 0xFFFFFF, _bevelStrength, 0, _bevelStrength, 2, 2, 1, 1, BitmapFilterType.INNER, _knockout)];
                          tile.x = _gutter;
                          tile.y = _gutter;
                          container.addChild(tile);
                          bitmap.draw(container);
                          return bitmap;
                  }
          
          }
          
  }


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.