topical media & game development

talk show tell print

#graphic-flex-image-effects-07-source-aether-effects-transformations-GridEffect.ax

#graphic-flex-image-effects-07-source-aether-effects-transformations-GridEffect.ax [swf] [flash] flex


  package aether.effects.transformations {
          
          import aether.effects.ImageEffect;
          
          import flash.display.BitmapData;
          import flash.geom.Matrix;
          import flash.geom.Point;
          
          public class @ax-graphic-flex-image-effects-07-source-aether-effects-transformations-GridEffect extends ImageEffect {
          
                  private var _rows:uint;
                  private var _columns:uint;
  
                  public function @ax-graphic-flex-image-effects-07-source-aether-effects-transformations-GridEffect(
                          rows:uint=2,
                          columns:uint=2,
                          blendMode:String=null,
                          alpha:Number=1
                  ) {
                          init(blendMode, alpha);
                          _rows = rows;
                          _columns = columns;
                  }
          
                  override protected function applyEffect(bitmapData:BitmapData):void {
                          var w:Number = bitmapData.width;
                          var tW:Number = w/_columns;
                          var h:Number = bitmapData.height;
                          var tH:Number = h/_rows;
                          var matrix:Matrix = new Matrix();
                          matrix.scale(tW/w, tH/h);
                          var image:BitmapData = new BitmapData(tW, tH, true, 0x00000000);
                          image.draw(bitmapData, matrix);
                          var grid:BitmapData = new BitmapData(w, h);
                          var column:uint;
                          for (var row:uint = 0; row < _rows; row++) {
                                  for (column = 0; column < _columns; column++) {
                                          grid.copyPixels(image, image.rect, new Point(column*tW, row*tH));
                                  }
                          }
                          bitmapData.copyPixels(grid, grid.rect, new Point());
                  }
          
          }
          
  }


(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.