Guest User

CropImage

a guest
Nov 27th, 2013
472
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package screens
  2. {
  3.     import com.greensock.transform.Crop;
  4.     import com.greensock.transform.TransformItem;
  5.     import com.greensock.transform.TransformManager;
  6.    
  7.     import flash.display.Bitmap;
  8.     import flash.display.MovieClip;
  9.     import flash.display.Shape;
  10.     import flash.display.SimpleButton;
  11.     import flash.display.Sprite;
  12.     import flash.events.Event;
  13.     import flash.events.MouseEvent;
  14.    
  15.     import controls.Slider;
  16.    
  17.     import screens.events.ScreenEvent;
  18.    
  19.     public class SettingsScreen extends BaseScreen
  20.     {
  21.         [Embed(source = "../../assets/Jake.jpg")]
  22.         private var JakeImg:Class;
  23.        
  24.         private static const BORDER_WIDTH:int = 363;
  25.         private static const BORDER_HEIGHT:int = 453;
  26.        
  27.         private var _image:Sprite;
  28.         private var _imageBorder:Sprite;
  29.         private var _imageContainer:Sprite;
  30.         private var _backButton:SimpleButton;
  31.         private var _nextButton:SimpleButton;
  32.         private var _visual:Sprite;
  33.         private var _scaleSlider:Slider;
  34.         private var _rotationSlider:Slider;
  35.         private var _item:TransformItem;
  36.         private var _manager:TransformManager;
  37.         private var _crop:Crop;
  38.        
  39.         public function SettingsScreen(visual:Sprite)
  40.         {
  41.             super(visual);
  42.            
  43.             _visual = visual;
  44.            
  45.             _nextButton = _visual.getChildByName("nextButton") as SimpleButton;
  46.             _nextButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
  47.            
  48.             _backButton = _visual.getChildByName("backButton") as SimpleButton;
  49.             _backButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
  50.            
  51.             makeImageBorder();
  52.             makeSliders();
  53.         }
  54.        
  55.         private function buttonClickHandler(event:MouseEvent):void
  56.         {
  57.             switch(event.currentTarget)
  58.             {
  59.                 case _nextButton:
  60.                     cropImage();
  61.                     //dispatchEvent(new ScreenEvent(ScreenEvent.CHANGE, NameCartoonScreen));
  62.                     break;
  63.                 case _backButton:
  64.                     dispatchEvent(new ScreenEvent(ScreenEvent.CHANGE, ChooseImageScreen));
  65.                     break;
  66.             }
  67.         }
  68.        
  69.         private function makeImageBorder():void
  70.         {
  71.             _imageContainer = new Sprite();
  72.             _visual.addChild(_imageContainer);
  73.             _imageBorder = _visual.getChildByName("imageBorder") as MovieClip;
  74.            
  75.             var bitmap:Bitmap = new JakeImg();
  76.             _image = new Sprite();
  77.             _image.addChild(bitmap);
  78.             _imageContainer.addChild(_image);
  79.            
  80.             _manager = new TransformManager();
  81.             _manager.addItem(_image);
  82.             _manager.lineThickness = 0;
  83.             _manager.arrowKeysMove = true;
  84.             _manager.constrainScale = true;
  85.             _manager.scaleFromCenter = true;
  86.             _manager.handleSize = 0;
  87.             _manager.hideCenterHandle = true;
  88.            
  89.             var blankShape:Shape = new Shape();
  90.             TransformManager.customizeMoveCursor(blankShape, false);
  91.             TransformManager.customizeRotationCursor(blankShape, false);
  92.            
  93.             _item = _manager.getItem(_image);
  94.             _item.minScale = 0.2;
  95.             _item.maxScale = 2;
  96.             _manager.selectItem(_item, true);
  97.            
  98.             var borderMask:Shape = new Shape();
  99.             borderMask.graphics.beginFill(0x00FF00);
  100.             borderMask.graphics.drawRect(0, 0, 329.8, 353.95);
  101.             borderMask.x = 144.55;
  102.             borderMask.y = 140.65;
  103.            
  104.             _imageContainer.mask = borderMask;
  105.             _visual.addChild(borderMask);
  106.             _imageBorder.addChildAt(_imageContainer, 0);
  107.         }
  108.        
  109.         private function makeSliders():void
  110.         {
  111.             _scaleSlider = new Slider(_visual, 670, 220);
  112.             _scaleSlider.minimum = _item.minScaleX;
  113.             _scaleSlider.maximum = _item.maxScaleX;
  114.             _scaleSlider.value = (_scaleSlider.maximum + _scaleSlider.minimum) / 2;
  115.             _item.scale(_scaleSlider.value, _scaleSlider.value);
  116.             _imageContainer.x = BORDER_WIDTH / 2 - (_imageContainer.width / 2);
  117.             _imageContainer.y = (BORDER_HEIGHT) / 2 - (_imageContainer.height / 2);
  118.             _scaleSlider.addEventListener(Event.CHANGE, scaleSliderChangeHandler);
  119.            
  120.             _rotationSlider = new Slider(_visual, 670, 320);
  121.             _rotationSlider.minimum = -180;
  122.             _rotationSlider.maximum = 180;
  123.             _rotationSlider.value = 0;
  124.             _item.rotate(_rotationSlider.value);
  125.             _rotationSlider.addEventListener(Event.CHANGE, rotationSliderChangeHandler);
  126.         }
  127.        
  128.         private function scaleSliderChangeHandler(event:Event):void
  129.         {
  130.             _item.scaleX = _scaleSlider.value;
  131.             _item.scaleY = _scaleSlider.value;
  132.            
  133.         }
  134.        
  135.         private function rotationSliderChangeHandler(event:Event):void
  136.         {
  137.             _item.rotation = _rotationSlider.value;
  138.         }
  139.        
  140.         private function cropImage():void
  141.         {
  142.             var faceArea:FaceArea_mc = new FaceArea_mc();
  143.             _crop = new Crop(_image, _manager);
  144. /*          _crop.x = 128 + 36.70;
  145.             _crop.y = 90.95 + 20.80;
  146.             _crop.width = faceArea.width;
  147.             _crop.height = faceArea.height;*/
  148.             _crop.configureCropMode(true, 0.1, 0x0000FF, true);
  149.             _crop.cropMode = true;
  150.         }
  151.     }
  152. }
RAW Paste Data