Chapter 37 Example 9

by actionscriptbible
♥0 | Line 35 | Modified 2010-02-09 15:58:17 | MIT License
play

ActionScript3 source code

/**
 * Copyright actionscriptbible ( http://wonderfl.net/user/actionscriptbible )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/coRG
 */

package {
  import flash.display.Sprite;
  import flash.events.MouseEvent;
  import flash.filters.ColorMatrixFilter;

  public class ch37ex9 extends Sprite {
    protected var img:TestImage;
    function ch37ex9() {
      img = new TestImage();
      addChild(img);
      addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
    }
    protected function onMouseMove(event:MouseEvent):void {
      //1 for no change, 0 for lowest contrast, 2 and up for high contrast
      var contrastAmount:Number;
      //mouse at left for lowest contrast, right for 3x contrast boost
      contrastAmount = stage.mouseX / stage.stageWidth * 3;
      var scale:Number = contrastAmount;
      var offset:Number = 128 * (1 - scale);
      var aContrast:Array = [scale,     0,     0, 0, offset,
                                 0, scale,     0, 0, offset,
                                 0,     0, scale, 0, offset,
                                 0,     0,     0, 1,      0];
      img.filters = [new ColorMatrixFilter(aContrast)];
    }
  }
}
import flash.display.Loader;
import flash.net.URLRequest;
import flash.system.LoaderContext;
class TestImage extends Loader {
  public function TestImage(scale:Number = 1, x:Number = 0, y:Number = 0) {
    //photo   (CC-BY) Roger Braunstein
    //source  http://www.flickr.com/photos/rogerimp/2940373537/
    var url:String = "http://actionscriptbible.com/files/heiwadoori.jpg";
    load(new URLRequest(url), new LoaderContext(true));
    scaleX = scaleY = scale;
    this.x = x; this.y = y;
  }
}