[Checkins] SVN: z3c.reference/trunk/ minor bugfix, added warning color when crop area too small, added maximum selection of crop area when no crop area is given

Gerold Böhler gerold at reloc.org
Tue Dec 11 10:26:40 EST 2007


Log message for revision 82253:
  minor bugfix, added warning color when crop area too small, added maximum selection of crop area when no crop area is given

Changed:
  U   z3c.reference/trunk/flash/fla/imagetool.as
  U   z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/EditableImage.as
  U   z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/FlashvarSetup.as
  U   z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/ImageTool.as
  U   z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/MovieclipAttitude.as
  U   z3c.reference/trunk/src/z3c/reference/browser/resources/imagetool.swf

-=-
Modified: z3c.reference/trunk/flash/fla/imagetool.as
===================================================================
--- z3c.reference/trunk/flash/fla/imagetool.as	2007-12-11 13:32:12 UTC (rev 82252)
+++ z3c.reference/trunk/flash/fla/imagetool.as	2007-12-11 15:26:40 UTC (rev 82253)
@@ -29,12 +29,12 @@
     if (!_level0.url) _level0.url="toothbrush.jpg";
     
     //default values
-    if (_level0.crop_x == undefined) _level0.crop_x = 1240;
-    if (_level0.crop_y == undefined) _level0.crop_y = 880;
-    if (_level0.crop_w == undefined) _level0.crop_w = 400;
-    if (_level0.crop_h == undefined) _level0.crop_h = 400;
+    if (_level0.crop_x == undefined) _level0.crop_x = -1;
+    if (_level0.crop_y == undefined) _level0.crop_y = -1;
+    if (_level0.crop_w == undefined) _level0.crop_w = 0;
+    if (_level0.crop_h == undefined) _level0.crop_h = 0;
     if (_level0.rotation == undefined) _level0.rotation = 0;
-    if (_level0.presets == undefined) _level0.presets = "[{'ratio': '4:2', 'name': 'default', 'size': '150x100'}]";//, {"name": "Output", "output_w": 123, "output_h": 321}, {"name": "Min", "min_w": 222, "min_h": 111}, {"name": "Max", "max_w": 555, "max_h": 444}, {"name": "MinMax", "output_w": 987, "output_h": 654, "max_w": 543, "max_h": 432, "min_w": 432, "min_h": 321}]';
+    if (_level0.presets == undefined) _level0.presets = "[{'ratio': '4:2', 'name': 'default'}]";//, {"name": "Output", "output_w": 123, "output_h": 321}, {"name": "Min", "min_w": 222, "min_h": 111}, {"name": "Max", "max_w": 555, "max_h": 444}, {"name": "MinMax", "output_w": 987, "output_h": 654, "max_w": 543, "max_h": 432, "min_w": 432, "min_h": 321}]';
 //crop_x=0&crop_y=0&crop_w=-1&crop_h=-1&rotation=0&presets=[{'ratio': '3:2', 'name': 'default', 'size': '450x300'}]
 }
 // Debug Block End

Modified: z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/EditableImage.as
===================================================================
--- z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/EditableImage.as	2007-12-11 13:32:12 UTC (rev 82252)
+++ z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/EditableImage.as	2007-12-11 15:26:40 UTC (rev 82253)
@@ -32,6 +32,9 @@
     private var mcLoader:MovieClipLoader;
     private var bitmapData:BitmapData;
     
+    private var fadeColor:Number = 0x000000;
+    private var fadeArea:Rectangle;
+    
 	function EditableImage()
 	{
 	    super();
@@ -73,63 +76,70 @@
         eo.target.removeEventListener("onEnd", this);
     }
     
+    public function setFadeColor(color:Number)
+    {
+        fadeColor = color;
+    }
+    
     public function setVisibleArea(area:Rectangle)
     {
         if (!isFaderVisible)
             return;
-            
+        
+        fadeArea = area.clone();
+        
         fader_mc.clear();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(0, 0);
         fader_mc.lineTo(area.x, 0);
         fader_mc.lineTo(area.x, area.y);
         fader_mc.lineTo(0, area.y)
         fader_mc.endFill();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(area.x, 0);
         fader_mc.lineTo(area.x + area.width, 0);
         fader_mc.lineTo(area.x + area.width, area.y);
         fader_mc.lineTo(area.x, area.y)
         fader_mc.endFill();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(area.x + area.width, 0);
         fader_mc.lineTo(image_mc._width, 0);
         fader_mc.lineTo(image_mc._width, area.y);
         fader_mc.lineTo(area.x + area.width, area.y)
         fader_mc.endFill();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(0, area.y);
         fader_mc.lineTo(area.x, area.y);
         fader_mc.lineTo(area.x, area.y + area.height);
         fader_mc.lineTo(0, area.y + area.height);
         fader_mc.endFill();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(area.x + area.width, area.y);
         fader_mc.lineTo(image_mc._width, area.y);
         fader_mc.lineTo(image_mc._width, area.y + area.height);
         fader_mc.lineTo(area.x + area.width, area.y + area.height)
         fader_mc.endFill();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(0, area.y + area.height);
         fader_mc.lineTo(area.x, area.y + area.height);
         fader_mc.lineTo(area.x, image_mc._height);
         fader_mc.lineTo(0, image_mc._height)
         fader_mc.endFill();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(area.x, area.y + area.height);
         fader_mc.lineTo(area.x + area.width, area.y + area.height);
         fader_mc.lineTo(area.x + area.width, image_mc._height);
         fader_mc.lineTo(area.x, image_mc._height)
         fader_mc.endFill();
 
-        fader_mc.beginFill(0x000000, 50);
+        fader_mc.beginFill(fadeColor, 50);
         fader_mc.moveTo(area.x + area.width, area.y + area.height);
         fader_mc.lineTo(image_mc._width, area.y + area.height);
         fader_mc.lineTo(image_mc._width, image_mc._height);

Modified: z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/FlashvarSetup.as
===================================================================
--- z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/FlashvarSetup.as	2007-12-11 13:32:12 UTC (rev 82252)
+++ z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/FlashvarSetup.as	2007-12-11 15:26:40 UTC (rev 82253)
@@ -19,24 +19,26 @@
     private var MODE_FIRST_TIME_WITH_RATIO:Number = 1;
     private var MODE_NORMAL:Number = 2;
 
+    private var VIEWPORT_INITIAL_PERCENT:Number = 1.0;
+
     private var imageAttitude:EditableImageAttitude;
     private var finalScale:Number = 0;
-    private var viewportRatio:Number = 0;
+    //private var viewportRatio:Number = 0;
     private var selectedPreset;
     
 	function FlashvarSetup(attitude:EditableImageAttitude)
 	{
 	    imageAttitude = attitude;
 	    finalScale = imageAttitude.originalWidth / imageAttitude.w;
-	    viewportRatio = FlashvarManager.get("crop_w") / FlashvarManager.get("crop_h");
+	    var viewportRatio = FlashvarManager.get("crop_w") / FlashvarManager.get("crop_h");
 	    
-	    selectedPreset = setupPresetList();
+	    selectedPreset = setupPresetList(viewportRatio);
 	    
-	    if (isMode(MODE_FIRST_TIME_NO_RATIO))
-	        initFirstTimeNoRatio();
+	    if (isMode(MODE_FIRST_TIME_NO_RATIO) || isMode(MODE_FIRST_TIME_WITH_RATIO))
+	        initFirstTime();
 	    
-	    else if (isMode(MODE_FIRST_TIME_WITH_RATIO))
-	        initFirstTimeWithRatio();
+	    //else if (isMode(MODE_FIRST_TIME_WITH_RATIO))
+	    //    initFirstTime();
 	    
 	    else if (isMode(MODE_NORMAL))
 	        initNormal();
@@ -55,7 +57,7 @@
 	
 	// preset setup helpers ---------------------------------------------------------
 	
-	private function setupPresetList()
+	private function setupPresetList(viewportRatio: Number)
 	{
         var presetList = createPresetList();
         for (var i = 0; i < presetList.length; i++)
@@ -90,7 +92,11 @@
 	
 	private function setupPreset(preset)
 	{
-	    preset.ratio = parseInt(preset.ratio.split(":")[0]) / parseInt(preset.ratio.split(":")[1]);
+	    preset.ratio_x = parseInt(preset.ratio.split(":")[0]);
+	    preset.ratio_y = parseInt(preset.ratio.split(":")[1]);
+	    preset.ratio = preset.ratio_x / preset.ratio_y;
+	    preset.size_x = parseInt(preset.size.split("x")[0]);
+	    preset.size_y = parseInt(preset.size.split("x")[1]);
         preset.resetCoords = getViewportFitExtents(preset.ratio);
         preset.resetCoords.x /= finalScale;
         preset.resetCoords.y /= finalScale;
@@ -148,52 +154,56 @@
     }
     
     // initFirstTimeNoRatio selects the first preset available and if it has a ratio, applies it
-    private function initFirstTimeNoRatio()
+    private function initFirstTime()
     {
-        trace("initFirstTimeNoRatio " )
+        trace("initFirstTime " )
 
-        var defaultPreset = getPresetByRatioOrDefault();
+        var ratio = FlashvarManager.get("crop_w") / FlashvarManager.get("crop_h");
+        var preset = getPresetByRatioOrDefault(ratio);
     
-        if (!defaultPreset.ratio)
+        if (!preset.ratio)
         {
-            FlashvarManager.set("crop_w", imageAttitude.minOriginalSide * 0.8);
-            FlashvarManager.set("crop_h", imageAttitude.minOriginalSide * 0.8);
+            FlashvarManager.set("crop_w", imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT);
+            FlashvarManager.set("crop_h", imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT);
         }
         else
         {
-            if (defaultPreset.ratio >= 1)
-            {
-                FlashvarManager.set("crop_w", imageAttitude.minOriginalSide * 0.8);
-                FlashvarManager.set("crop_h", imageAttitude.minOriginalSide / defaultPreset.ratio * 0.8);
-            }
-            else
-            {
-                fitViewportIntoImage(defaultPreset.ratio);
-            }
+            var imageRatio = imageAttitude.originalWidth / imageAttitude.originalHeight;
+            var minSide = (imageAttitude.w < imageAttitude.h) ? imageAttitude.w : imageAttitude.h;
+            var dW = imageAttitude.originalWidth - preset.ratio_x;
+            var dH = imageAttitude.originalHeight - preset.ratio_y;
+
+            var sign = (dH < 0) ? -1 : 1;   // TODO - why sign???
+            var minLen = (sign * (dW / dH) <= sign * imageRatio) ? (imageAttitude.originalWidth) : (imageAttitude.originalHeight * preset.ratio);
+            var maxLen = (sign * (dW / dH) >= sign * imageRatio) ? (imageAttitude.originalHeight) : (imageAttitude.originalWidth / preset.ratio);
+
+            FlashvarManager.set("crop_w", minLen);
+            FlashvarManager.set("crop_h", maxLen);
         }
 
         centerViewport();
     }
-    
+    /*
     private function initFirstTimeWithRatio()
     {
         trace("initFirstTimeWithRatio")
 
         var ratio = FlashvarManager.get("crop_w") / FlashvarManager.get("crop_h");
-        var currentPreset = getPresetByRatioOrDefault();
+        var preset = getPresetByRatioOrDefault(ratio);
 
-        if (currentPreset.ratio >= 1)
+        if (preset.ratio >= 1)
         {
             FlashvarManager.set("crop_w", imageAttitude.minOriginalSide * 0.8);
-            FlashvarManager.set("crop_h", imageAttitude.minOriginalSide / currentPreset.ratio * 0.8);
+            FlashvarManager.set("crop_h", imageAttitude.minOriginalSide / preset.ratio * 0.8);
         }
         else
         {
-            fitViewportIntoImage(currentPreset.ratio)
+            fitViewportIntoImage(preset.ratio)
         }        
 
         centerViewport();
     }
+    */
     
     private function initNormal()
     {
@@ -211,7 +221,7 @@
     }
     
     // viewport helpers ---------------------------------------------------------
-    
+    /*
     private function fitViewportIntoImage(viewportRatio:Number)
     {
         var resetExtents = getViewportFitExtents(viewportRatio);
@@ -219,21 +229,24 @@
         FlashvarManager.set("crop_w", resetExtents.x);
         FlashvarManager.set("crop_h", resetExtents.y);
     }
+    */
     
     private function getViewportFitExtents(viewportRatio:Number)
     {
         if (isNaN(viewportRatio))
-            return new Point(imageAttitude.minOriginalSide * 0.8, imageAttitude.minOriginalSide * 0.8);
+            return new Point(imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT, imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT);
             
+        /*
         var minLen = imageAttitude.minOriginalSide;
         var viewportW = imageAttitude.originalWidth * 0.8;
         var viewportH = imageAttitude.originalHeight * 0.8;
         var minLen = (viewportW > viewportH) ? viewportH : viewportW;
+        */
         
         if (viewportRatio >= 1)
-            return new Point(minLen, minLen / viewportRatio);
+            return new Point(imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT, imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT / viewportRatio);
             
-        return new Point(minLen * viewportRatio, minLen);
+        return new Point(imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT * viewportRatio, imageAttitude.minOriginalSide * VIEWPORT_INITIAL_PERCENT);
     }
     
     private function centerViewport()

Modified: z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/ImageTool.as
===================================================================
--- z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/ImageTool.as	2007-12-11 13:32:12 UTC (rev 82252)
+++ z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/ImageTool.as	2007-12-11 15:26:40 UTC (rev 82253)
@@ -302,19 +302,9 @@
             dH = (canvas_mc._height - imageAttitude.originalWidth);
         }
 
-        // TODO - why dH < 0 ????
-        var minLen = 0;
-        var maxLen = 0;
-        if (dH < 0)
-        {
-            minLen = (-(dW / dH) <= -canvasRatio) ? (canvas_mc._width) : (canvas_mc._height * imageRatio);
-            maxLen = (-(dW / dH) >= -canvasRatio) ? (canvas_mc._height) : (canvas_mc._width / imageRatio);
-        }
-        else
-        {
-            minLen = ((dW / dH) <= canvasRatio) ? (canvas_mc._width) : (canvas_mc._height * imageRatio);
-            maxLen = ((dW / dH) >= canvasRatio) ? (canvas_mc._height) : (canvas_mc._width / imageRatio);
-        }
+        var sign = (dH < 0) ? -1 : 1;   // TODO - why sign???
+        var minLen = (sign * (dW / dH) <= sign * canvasRatio) ? (canvas_mc._width) : (canvas_mc._height * imageRatio);
+        var maxLen = (sign * (dW / dH) >= sign * canvasRatio) ? (canvas_mc._height) : (canvas_mc._width / imageRatio);
 
         if (FlashvarManager.get("rotation") == 90 || FlashvarManager.get("rotation") == 270)
             editable_image_mc.setSize(maxLen, minLen);
@@ -322,8 +312,24 @@
             editable_image_mc.setSize(minLen, maxLen);
     }
     
+/*
+    private function fitImageToStageDynamically()
+    {
+        var canvasRatio = canvas_mc._width / canvas_mc._height;
+        var imageRatio = imageAttitude.originalWidth / imageAttitude.originalHeight;
+        var dW = (canvas_mc._width - imageAttitude.originalWidth);
+        var dH = (canvas_mc._height - imageAttitude.originalHeight);
 
+        var sign = (dH < 0) ? -1 : 1;   // TODO - why sign???
+        var minLen = (sign * (dW / dH) <= sign * canvasRatio) ? (canvas_mc._width) : (canvas_mc._height * imageRatio);
+        var maxLen = (sign * (dW / dH) >= sign * canvasRatio) ? (canvas_mc._height) : (canvas_mc._width / imageRatio);
 
+        imageAttitude.w = minLen;
+        imageAttitude.h = maxLen;
+        centerImage();
+    }
+*/
+
     // viewport handling -----------------------------------------------------------------    	
     
     function onEnterFrameUpdateViewport()
@@ -892,6 +898,7 @@
         
         if (changesLoaded)
         {
+            //fitImageToStageDynamically();
             updateFader();
             saveChanges();
         }
@@ -939,6 +946,15 @@
                 break;
         }
 
+        var finalScale = imageAttitude.originalWidth / imageAttitude.w;
+        var outputW = viewport_mc._width * finalScale;
+        var outputH = viewport_mc._height * finalScale;
+        trace(outputW + " " + outputH + " " + currentPreset.size_x + " " + currentPreset.size_y)
+        if (outputW < currentPreset.size_x || outputH < currentPreset.size_y)
+            editable_image_mc.setFadeColor(0xff0000);
+        else
+            editable_image_mc.setFadeColor(0x000000);
+
         editable_image_mc.setVisibleArea(new Rectangle(x, y, w, h));
     }
     

Modified: z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/MovieclipAttitude.as
===================================================================
--- z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/MovieclipAttitude.as	2007-12-11 13:32:12 UTC (rev 82252)
+++ z3c.reference/trunk/flash/src/z3c/reference/imagetool/baseskin/MovieclipAttitude.as	2007-12-11 15:26:40 UTC (rev 82253)
@@ -199,6 +199,14 @@
         return originalWidth;
     }
     
+    public function get maxnOriginalSide():Number
+    {
+        if (originalWidth < originalHeight)
+            return originalHeight;
+
+        return originalWidth;
+    }
+    
     public function get originalRatio():Number
     {
         return originalWidth / originalHeight;

Modified: z3c.reference/trunk/src/z3c/reference/browser/resources/imagetool.swf
===================================================================
(Binary files differ)



More information about the Checkins mailing list