You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2016/05/05 14:10:10 UTC

git commit: [flex-asjs] [refs/heads/develop] - Updated CreateJS to work within and target objects using targets' ID.

Repository: flex-asjs
Updated Branches:
  refs/heads/develop 81820986f -> 3cd25a295


Updated CreateJS to work within <fx:Declarations> and target objects using targets' ID.


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

Branch: refs/heads/develop
Commit: 3cd25a295a79a16577f170d2b11eddd93fed40db
Parents: 8182098
Author: Peter Ent <pe...@apache.org>
Authored: Thu May 5 10:10:06 2016 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu May 5 10:10:06 2016 -0400

----------------------------------------------------------------------
 .../CreateJSExample/src/CreateJSExample.mxml    | 62 ++++++++------------
 .../org/apache/flex/createjs/Application.as     | 10 +++-
 .../org/apache/flex/createjs/tween/Effect.as    | 34 +++++------
 .../org/apache/flex/createjs/tween/Sequence.as  | 41 ++++++++++---
 .../org/apache/flex/createjs/tween/Tween.as     | 33 ++++++++---
 5 files changed, 108 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3cd25a29/examples/flexjs/CreateJSExample/src/CreateJSExample.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/CreateJSExample/src/CreateJSExample.mxml b/examples/flexjs/CreateJSExample/src/CreateJSExample.mxml
index 2b127f7..b47e75e 100644
--- a/examples/flexjs/CreateJSExample/src/CreateJSExample.mxml
+++ b/examples/flexjs/CreateJSExample/src/CreateJSExample.mxml
@@ -28,47 +28,33 @@ limitations under the License.
         <js:SimpleCSSValuesImpl />
     </js:valuesImpl>
     
+    <js:beads>
+        <js:ApplicationDataBinding />
+    </js:beads>
+    
+    <fx:Declarations>
+    	<cjs:Sequence id="seq" target="circle" loop="true">
+			<cjs:Tween id="tween1" target="circle" xTo="400" 
+					duration="1000" easing="{Ease.getPowInOut(4)}" /> 
+			<cjs:Tween id="tween2" target="circle" alphaTo="0" yTo="175" 
+					duration="500" easing="{Ease.getPowInOut(2)}" />
+			<cjs:Tween id="tween3" target="circle" alphaTo="0" yTo="225" 
+					duration="100" />
+			<cjs:Tween id="tween4" target="circle" alphaTo="1" yTo="200" 
+					duration="500" easing="{Ease.getPowInOut(2)}" />
+			<cjs:Tween id="tween5" target="circle" xTo="100" 
+					duration="800" easing="{Ease.getPowInOut(2)}" />
+    	</cjs:Sequence>
+    </fx:Declarations>
+    
     <fx:Script>
     	<![CDATA[
     		import org.apache.flex.createjs.tween.Ease;
-    		import org.apache.flex.createjs.tween.Tween;
-    		import org.apache.flex.createjs.tween.Sequence;
-    		
-    		private function runEffect():void {
-    			var move1:Tween = new Tween(circle);
-    			move1.xTo = 400;
-    			move1.duration = 1000;
-    			move1.easing = Ease.getPowInOut(4);
-    			
-    			var move2:Tween = new Tween(circle);
-    			move2.alphaTo = 0;
-    			move2.yTo = 175;
-    			move2.duration = 500;
-    			move2.easing = Ease.getPowInOut(2);
-    			
-    			var move3:Tween = new Tween(circle);
-    			move3.alphaTo = 0;
-    			move3.yTo = 225;
-    			move3.duration = 100;
-    			
-    			var move4:Tween = new Tween(circle);
-    			move4.alphaTo = 1;
-    			move4.yTo = 200;
-    			move4.duration = 500;
-    			move4.easing = Ease.getPowInOut(2);
-    			
-    			var move5:Tween = new Tween(circle);
-    			move5.xTo = 100;
-    			move5.duration = 800;
-    			move5.easing = Ease.getPowInOut(2);
+    		//import org.apache.flex.createjs.tween.Tween;
+    		//import org.apache.flex.createjs.tween.Sequence;
     		
-    			var seq:Sequence = new Sequence(circle);
-    			seq.loop = true;
-    			seq.addEffect(move1);
-    			seq.addEffect(move2);
-    			seq.addEffect(move3);
-    			seq.addEffect(move4);
-    			seq.addEffect(move5);
+    		private function runEffect():void {    			
+    			// run the sequence of tweens
     			seq.play();
     		}
     	]]>
@@ -82,6 +68,8 @@ limitations under the License.
 					<js:SolidColor color="#26C9FF" />
 				</js:fill>
 			</cjs:Circle>
+			
+			<cjs:Circle id="other" x="100" y="400" width="100" height="100" />
    		    
         </cjs:View>
     </js:initialView>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3cd25a29/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
index 3ef4196..bc2025f 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
@@ -130,7 +130,7 @@ package org.apache.flex.createjs
 		{
 			super();
 		}
-        
+		        
         private var stage:Stage;
         
         /**
@@ -159,8 +159,16 @@ package org.apache.flex.createjs
             body.appendChild(this.element);
             
             stage = new createjs.Stage('flexjsCanvas');
+			
+			MXMLDataInterpreter.generateMXMLInstances(this, null, MXMLDescriptor);
             
             dispatchEvent('initialize');
+			
+			for (var index:int in beads) {
+				addBead(beads[index]);
+			}
+			
+			dispatchEvent(new org.apache.flex.events.Event("beadsAdded"));
             
             initialView.applicationModel = this.model;
             addElement(initialView);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3cd25a29/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Effect.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Effect.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Effect.as
index 54e1a3b..dbe7434 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Effect.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Effect.as
@@ -48,49 +48,40 @@ package org.apache.flex.createjs.tween
 		 *  @playerversion AIR 1.1
 		 *  @productversion Flex 3
 		 */
-        public function Effect(target:Object=null)
+        public function Effect(target:CreateJSBase=null)
 		{
 			super();
 			
 			_actualTarget = target;
 		}
 		
-		private var _target:Object;
+		private var _target:String;
 		
 		[Bindable("targetChanged")]
 		/**
-		 * The object upon which the effect is being made. This can be either an
-		 * actual object or the ID (String) of an object.
+		 * The name of the object upon which the effect is being made. 
 		 *  
 		 *  @langversion 3.0
 		 *  @playerversion Flash 9
 		 *  @playerversion AIR 1.1
 		 *  @productversion Flex 3
 		 */
-		public function get target():Object
+		public function get target():String
 		{
 			return _target;
 		}
-		public function set target(value:Object):void
+		public function set target(value:String):void
 		{
-			_target = value;
-			if (value != null) {
-				if (value is String) {
-					// if this is an id, then look it up somehow - don't know how yet
-				}
-				else {
-					_actualTarget = value;
-				}
-				
+			if (value != _target) {
+				_target = value;
 				dispatchEvent(new Event("targetChanged"));
 			}
 		}
 		
-		
 		/**
 		 * @private
 		 */
-		protected var _actualTarget:Object;
+		protected var _actualTarget:CreateJSBase;
 		
 		/**
 		 * The duration of the effect, defaults to 1000 (1 second).
@@ -121,7 +112,14 @@ package org.apache.flex.createjs.tween
 		 *  @playerversion AIR 1.1
 		 *  @productversion Flex 3
 		 */
-		public var easing:Function = null;
+		//public var easing:Function = null;
+		private var _easing:Function = null;
+		public function get easing():Function {
+			return _easing;
+		}
+		public function set easing(value:Function):void {
+			_easing = value;
+		}
 		
 		/**
 		 * @private

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3cd25a29/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Sequence.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Sequence.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Sequence.as
index 9d3bd89..c918f44 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Sequence.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Sequence.as
@@ -18,6 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.createjs.tween
 {		
+	import org.apache.flex.core.IDocument;
 	import org.apache.flex.createjs.core.CreateJSBase;
 	
 	COMPILE::JS {
@@ -27,6 +28,8 @@ package org.apache.flex.createjs.tween
 		import createjs.Ticker;
 	}
 		
+	[DefaultProperty("tweens")]
+		
     /**
      * The Sequence effect plays a set of effects, one after the other. 
 	 *  
@@ -35,7 +38,7 @@ package org.apache.flex.createjs.tween
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
      */
-	public class Sequence extends Effect
+	public class Sequence extends Effect implements IDocument
 	{
 		/**
 		 * Constructor 
@@ -54,6 +57,15 @@ package org.apache.flex.createjs.tween
 		
 		private var _tweens:Array;
 		
+		public function set tweens(value:Array):void
+		{
+			_tweens = value;
+		}
+		public function get tweens():Array
+		{
+			return _tweens;
+		}
+		
 		public function addEffect(effect:Effect):void
 		{
 			_tweens.push(effect);
@@ -63,6 +75,17 @@ package org.apache.flex.createjs.tween
 		private var _tween:createjs.Tween;
 		
 		/**
+		 *  @private
+		 *  The document.
+		 */
+		private var document:Object;
+		
+		public function setDocument(document:Object, id:String = null):void
+		{
+			this.document = document;	
+		}
+		
+		/**
 		 *  Causes the effects in the tween list to be played, one after the other. 
 		 *  
 		 *  @langversion 3.0
@@ -75,19 +98,21 @@ package org.apache.flex.createjs.tween
 		override public function play():void
 		{
 			COMPILE::JS {
-				var target:CreateJSBase = _actualTarget as CreateJSBase;
-				var element:createjs.Shape = target.element as createjs.Shape;
+				if (target != null) {
+					_actualTarget = document[target] as CreateJSBase;
+				}
+				var element:createjs.Shape = _actualTarget.element as createjs.Shape;
 				_tween = createjs.Tween.get(element, {loop: loop});
 				_tween.setPaused(true);
 				
-				if (easing == null) {
-					easing = org.apache.flex.createjs.tween.Ease.getPowInOut(2);
-				}
-				
 				for (var i:int=0; i < _tweens.length; i++) {
 					var e:Effect = _tweens[i] as Effect;
 					var options:Object = e.createTweenOptions();
-					_tween.to( options, e.duration, easing);					
+					
+					var useEasing:Function = easing;
+					if (e.easing != null) useEasing = e.easing;
+					
+					_tween.to( options, e.duration, useEasing);					
 				}
 
 				_tween.setPaused(false);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3cd25a29/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Tween.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Tween.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Tween.as
index ade06f5..40319ae 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Tween.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/tween/Tween.as
@@ -18,6 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.createjs.tween
 {		
+	import org.apache.flex.core.IDocument;
 	import org.apache.flex.createjs.core.CreateJSBase;
 	
 	COMPILE::JS {
@@ -39,7 +40,7 @@ package org.apache.flex.createjs.tween
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
      */
-	public class Tween extends Effect
+	public class Tween extends Effect implements IDocument
 	{
 		/**
 		 * Constructor 
@@ -114,6 +115,18 @@ package org.apache.flex.createjs.tween
 		 */
 		public var alphaTo:Number;
 		
+		/**
+		 *  @private
+		 *  The document.
+		 */
+		private var document:Object;
+		
+		public function setDocument(document:Object, id:String = null):void
+		{
+			this.document = document;	
+		}
+		
+		
 		COMPILE::JS
 		private var _tween:createjs.Tween;
 		
@@ -129,8 +142,10 @@ package org.apache.flex.createjs.tween
 				return null;
 			}
 			COMPILE::JS {
-				var target:CreateJSBase = _actualTarget as CreateJSBase;
-				var element:createjs.Shape = target.element as createjs.Shape;
+				if (target != null) {
+					_actualTarget = document[target] as CreateJSBase;
+				}
+				var element:createjs.Shape = _actualTarget.element as createjs.Shape;
 				
 				// initialize options with the original values. if target values
 				// are supplied, replace the original values with the targets.
@@ -140,9 +155,9 @@ package org.apache.flex.createjs.tween
 				if (!isNaN(alphaTo)) options["alpha"] = alphaTo;
 				
 				// if precondition values are set, move or set the target accordingly.
-				if (!isNaN(xFrom)) target.x = xFrom;
-				if (!isNaN(yFrom)) target.y = yFrom;
-				if (!isNaN(alphaFrom)) target.alpha = alphaFrom;
+				if (!isNaN(xFrom)) _actualTarget.x = xFrom;
+				if (!isNaN(yFrom)) _actualTarget.y = yFrom;
+				if (!isNaN(alphaFrom)) _actualTarget.alpha = alphaFrom;
 				
 				return options;
 			}
@@ -162,8 +177,10 @@ package org.apache.flex.createjs.tween
 		override public function play():void
 		{
 			COMPILE::JS {
-				var target:CreateJSBase = _actualTarget as CreateJSBase;
-				var element:createjs.Shape = target.element as createjs.Shape;
+				if (target != null) {
+					_actualTarget = document[target] as CreateJSBase;
+				}
+				var element:createjs.Shape = _actualTarget.element as createjs.Shape;
 				_tween = createjs.Tween.get(element, {loop: loop});
 
 				var options:Object = createTweenOptions();