This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch feature/revert-refactor
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/feature/revert-refactor by 
this push:
     new ab52874  Add swf version for DropShadowFilter
ab52874 is described below

commit ab528748acd45011223f9fcd9d0f9191c922fcef
Author: DESKTOP-RH4S838\Yishay <[email protected]>
AuthorDate: Mon Jul 9 15:06:34 2018 +0300

    Add swf version for DropShadowFilter
---
 .../org/apache/royale/svg/DropShadowFilter.as      | 84 +++++++++++++---------
 1 file changed, 52 insertions(+), 32 deletions(-)

diff --git 
a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
 
b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
index dddc808..aa3f06a 100644
--- 
a/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
+++ 
b/frameworks/projects/Graphics/src/main/royale/org/apache/royale/svg/DropShadowFilter.as
@@ -22,6 +22,11 @@ package org.apache.royale.svg
        import org.apache.royale.core.IBead;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.ValuesManager;
+       COMPILE::SWF 
+       {
+               import org.apache.royale.core.IRenderedObject;
+               import flash.filters.DropShadowFilter;
+       }
 
        /**
         *  DropShadowFilter is a bead that injects a series of beads in the 
correct 
@@ -58,42 +63,57 @@ package org.apache.royale.svg
                 */             
                public function set strand(value:IStrand):void
                {
-                       if (!value)
-                       {
-                               return;
-                       }
-                       loadBeadFromValuesManager(Filter, "filter", value);
-                       if (inset)
+                       COMPILE::JS 
                        {
-                               loadBeadFromValuesManager(InvertFilterElement, 
"invertFilterElement", value);
-                       }
-                       var offset:OffsetFilterElement = 
loadBeadFromValuesManager(OffsetFilterElement, "offsetFilterElement", value) as 
OffsetFilterElement;
-                       offset.dx = dx;
-                       offset.dy = dy;
-                       var blur:BlurFilterElement = 
loadBeadFromValuesManager(BlurFilterElement, "blurFilterElement", value) as 
BlurFilterElement;
-                       blur.stdDeviation = stdDeviation;
-                       var colorMatrix:ColorMatrixFilterElement = 
loadBeadFromValuesManager(ColorMatrixFilterElement, "colorMatrixFilterElement", 
value) as ColorMatrixFilterElement;
-                       colorMatrix.red = red;
-                       colorMatrix.green = green;
-                       colorMatrix.blue = blue;
-                       colorMatrix.opacity = opacity;
-                       var spreadElement:SpreadFilterElement = 
loadBeadFromValuesManager(SpreadFilterElement, "spreadFilterElement", value) as 
SpreadFilterElement;
-                       if (!inset)
-                       {
-                               spreadElement.result = "spreadResult";
+                               if (!value)
+                               {
+                                       return;
+                               }
+                               loadBeadFromValuesManager(Filter, "filter", 
value);
+                               if (inset)
+                               {
+                                       
loadBeadFromValuesManager(InvertFilterElement, "invertFilterElement", value);
+                               }
+                               if (!isNaN(dx) && !isNaN(dy) && (dx !=0 || dy 
!=0))
+                               {
+                                       var offset:OffsetFilterElement = 
loadBeadFromValuesManager(OffsetFilterElement, "offsetFilterElement", value) as 
OffsetFilterElement;
+                                       offset.dx = dx;
+                                       offset.dy = dy;
+                               }
+                               var blur:BlurFilterElement = 
loadBeadFromValuesManager(BlurFilterElement, "blurFilterElement", value) as 
BlurFilterElement;
+                               blur.stdDeviation = stdDeviation;
+                               var colorMatrix:ColorMatrixFilterElement = 
loadBeadFromValuesManager(ColorMatrixFilterElement, "colorMatrixFilterElement", 
value) as ColorMatrixFilterElement;
+                               colorMatrix.red = red;
+                               colorMatrix.green = green;
+                               colorMatrix.blue = blue;
+                               colorMatrix.opacity = opacity;
+                               var spreadElement:SpreadFilterElement = 
loadBeadFromValuesManager(SpreadFilterElement, "spreadFilterElement", value) as 
SpreadFilterElement;
+                               if (!inset)
+                               {
+                                       spreadElement.result = "spreadResult";
+                               }
+                               spreadElement.spread = spread;
+                               if (inset)
+                               {
+                                       var composite:CompositeFilterElement = 
loadBeadFromValuesManager(CompositeFilterElement, "compositeFilterElement", 
value) as CompositeFilterElement;
+                                       composite.in2 = "SourceAlpha";
+                                       composite.operator = "in";
+                                       composite.result = "compositeResult";
+                               }
+                               var blend:BlendFilterElement = 
loadBeadFromValuesManager(BlendFilterElement, "blendFilterElement", value) as 
BlendFilterElement;
+                               blend.in = inset ? "compositeResult" : 
"SourceGraphic";
+                               blend.in2 = inset ? "SourceGraphic" : 
"spreadResult";
+                               value.removeBead(this);
                        }
-                       spreadElement.spread = spread;
-                       if (inset)
+                       COMPILE::SWF 
                        {
-                               var composite:CompositeFilterElement = 
loadBeadFromValuesManager(CompositeFilterElement, "compositeFilterElement", 
value) as CompositeFilterElement;
-                               composite.in2 = "SourceAlpha";
-                               composite.operator = "in";
-                               composite.result = "compositeResult";
+                               var distance:Number = Math.sqrt( (dx * dx) + 
(dy * dy) );
+                               var radians:Number = Math.atan2(dy, dx);
+                               var angle:Number =  (180/Math.PI) * radians;
+                               var color:uint = red|green|blue;
+                               var filter:flash.filters.DropShadowFilter = new 
flash.filters.DropShadowFilter(distance, angle, color, opacity, stdDeviation, 
stdDeviation, spread + 1, 1, inset);
+                               (value as 
IRenderedObject).$displayObject.filters = [filter];
                        }
-                       var blend:BlendFilterElement = 
loadBeadFromValuesManager(BlendFilterElement, "blendFilterElement", value) as 
BlendFilterElement;
-                       blend.in = inset ? "compositeResult" : "SourceGraphic";
-                       blend.in2 = inset ? "SourceGraphic" : "spreadResult";
-                       value.removeBead(this);
                }
 
                private function 
loadBeadFromValuesManager(classOrInterface:Class, classOrInterfaceName:String, 
strand:IStrand):IBead

Reply via email to