You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2016/11/07 23:55:34 UTC

git commit: [flex-sdk] [refs/heads/release4.16.0] - FLEX-34738 Fix BusyIndicator so the skin / timer is removed when it's removed from stage while still spinning.

Repository: flex-sdk
Updated Branches:
  refs/heads/release4.16.0 d175d2cff -> cd45ebd25


FLEX-34738 Fix BusyIndicator so the skin / timer is removed when it's removed from stage while still spinning.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/cd45ebd2
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/cd45ebd2
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/cd45ebd2

Branch: refs/heads/release4.16.0
Commit: cd45ebd253dbc44f45515d607c4324a4871b5679
Parents: d175d2c
Author: Justin Mclean <jm...@apache.org>
Authored: Tue Nov 8 10:55:12 2016 +1100
Committer: Justin Mclean <jm...@apache.org>
Committed: Tue Nov 8 10:55:12 2016 +1100

----------------------------------------------------------------------
 .../src/spark/skins/ios7/BusyIndicatorSkin.as   | 20 ++++++++++++++-----
 .../src/spark/skins/spark/BusyIndicatorSkin.as  | 21 ++++++++++++++++----
 2 files changed, 32 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/cd45ebd2/frameworks/projects/mobiletheme/src/spark/skins/ios7/BusyIndicatorSkin.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/mobiletheme/src/spark/skins/ios7/BusyIndicatorSkin.as b/frameworks/projects/mobiletheme/src/spark/skins/ios7/BusyIndicatorSkin.as
index 805887b..a4fe64f 100644
--- a/frameworks/projects/mobiletheme/src/spark/skins/ios7/BusyIndicatorSkin.as
+++ b/frameworks/projects/mobiletheme/src/spark/skins/ios7/BusyIndicatorSkin.as
@@ -153,6 +153,16 @@ package spark.skins.ios7
 				symbolColorChanged = true;
 				invalidateDisplayList();
 			}
+			if (styleProp == "styleName") {
+				var value:String = getStyle("styleName");
+				
+				// We're being removed from the stage
+				if (value == null) {
+					stopRotation();
+					busyIndicatorBackground = null;
+					busyIndicator = null;
+				}
+			}
 			super.styleChanged(styleProp);
 		}
 		
@@ -206,15 +216,15 @@ package spark.skins.ios7
 			event.updateAfterEvent();
 		}
 		
-		private var rotationMatrix:Matrix; 
 		private function rotate(obj:DisplayObject, angle:Number, aroundX:Number, aroundY:Number):void
 		{
-			rotationMatrix = new Matrix();
-			rotationMatrix.translate(-aroundX,-aroundY);
+			var center:Number = Math.min(aroundX, aroundY); // stop wobbling if not square
+			var rotationMatrix:Matrix = new Matrix();
+			rotationMatrix.translate(-center,-center);
 			rotationMatrix.rotate(Math.PI*angle/180);
-			rotationMatrix.translate(aroundX,aroundY);
+			rotationMatrix.translate(center,center);
 			obj.transform.matrix = rotationMatrix;
 		}
 		
 	}
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/cd45ebd2/frameworks/projects/spark/src/spark/skins/spark/BusyIndicatorSkin.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/spark/src/spark/skins/spark/BusyIndicatorSkin.as b/frameworks/projects/spark/src/spark/skins/spark/BusyIndicatorSkin.as
index c1c98e5..b0feef0 100644
--- a/frameworks/projects/spark/src/spark/skins/spark/BusyIndicatorSkin.as
+++ b/frameworks/projects/spark/src/spark/skins/spark/BusyIndicatorSkin.as
@@ -239,6 +239,18 @@ package spark.skins.spark
 				symbolColorChanged = true;
 				invalidateDisplayList();
 			}
+			
+			if (styleProp == "styleName") {
+				var value:String = getStyle("styleName");
+				
+				// We're being removed from the stage
+				if (value == null) {
+					stopRotation();
+					busyIndicatorBackground = null;
+					busyIndicator = null;
+				}
+			}
+			
 			super.styleChanged(styleProp);
 		}
 		
@@ -326,16 +338,17 @@ package spark.skins.spark
 			event.updateAfterEvent();
 		}
 		
-		private var rotationMatrix:Matrix; 
 		private function rotate(obj:DisplayObject, angle:Number, aroundX:Number, aroundY:Number):void
 		{
-			rotationMatrix = new Matrix();
-			rotationMatrix.translate(-aroundX,-aroundY);
+			var center:Number = Math.min(aroundX, aroundY); // stop wobbling if not square
+			var rotationMatrix:Matrix = new Matrix();
+			rotationMatrix.translate(-center,-center);
 			rotationMatrix.rotate(Math.PI*angle/180);
-			rotationMatrix.translate(aroundX,aroundY);
+			rotationMatrix.translate(center,center);
 			obj.transform.matrix = rotationMatrix;
 		}
 		
 	}
 }
 
+