You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2015/12/17 08:54:27 UTC

[17/55] [abbrv] git commit: [flex-asjs] [refs/heads/develop] - backport clean compile of CreateJS

backport clean compile of CreateJS


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

Branch: refs/heads/develop
Commit: 4b7f2c0658800b69d05ed58bbf16022a47f461ab
Parents: 0e9b17d
Author: Alex Harui <ah...@apache.org>
Authored: Fri Dec 4 21:19:45 2015 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Dec 7 21:56:35 2015 -0800

----------------------------------------------------------------------
 .../src/org/apache/flex/createjs/Application.as | 176 +++++++---------
 .../as/src/org/apache/flex/createjs/CheckBox.as |  98 ++++++++-
 .../src/org/apache/flex/createjs/core/UIBase.as | 208 ++++++++++++++++++-
 .../org/apache/flex/createjs/core/ViewBase.as   |  17 +-
 frameworks/projects/CreateJS/build.xml          |  95 ++++++---
 .../projects/CreateJS/compile-asjs-config.xml   |  83 ++++++++
 6 files changed, 531 insertions(+), 146 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b7f2c06/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/Application.as b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/Application.as
index fd78f89..c6048ff 100644
--- a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/Application.as
+++ b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/Application.as
@@ -17,23 +17,25 @@
 //
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.createjs
-{
-	import flash.display.DisplayObject;
-	import flash.display.Sprite;
-	import flash.display.StageAlign;
-	import flash.display.StageScaleMode;
-	import flash.events.IOErrorEvent;
-	
-	import org.apache.flex.core.IBead;
-	import org.apache.flex.core.IFlexInfo;
-	import org.apache.flex.core.IStrand;
-	import org.apache.flex.core.IUIBase;
-	import org.apache.flex.core.IValuesImpl;
-	import org.apache.flex.core.ValuesManager;
-	import org.apache.flex.createjs.core.ViewBase;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.utils.MXMLDataInterpreter;
+{	
+    import org.apache.flex.core.ApplicationBase;
+    import org.apache.flex.core.IBead;
+    import org.apache.flex.core.IFlexInfo;
+    import org.apache.flex.core.IStrand;
+    import org.apache.flex.core.IUIBase;
+    import org.apache.flex.core.IValuesImpl;
+    import org.apache.flex.core.ValuesManager;
+    import org.apache.flex.createjs.core.ViewBase;
+    import org.apache.flex.events.Event;
+    import org.apache.flex.utils.MXMLDataInterpreter;
 	
+    COMPILE::JS
+    {
+        import org.apache.flex.core.WrappedHTMLElement;
+        import createjs.DisplayObject;
+        import createjs.Stage;
+    }
+    
 	//--------------------------------------
 	//  Events
 	//--------------------------------------
@@ -43,98 +45,70 @@ package org.apache.flex.createjs
 	 */
 	[Event(name="initialize", type="org.apache.flex.events.Event")]
 	
-	public class Application extends Sprite implements IStrand, IFlexInfo
+    /**
+     * FalconJX will inject html into the index.html file.  Surround with
+     * "inject_html" tag as follows:
+     *
+     * <inject_html>
+     * <script src="https://code.createjs.com/easeljs-0.8.1.min.js"></script>
+     * </inject_html>
+     */
+	public class Application extends org.apache.flex.core.Application implements IStrand, IFlexInfo
 	{
 		public function Application()
 		{
 			super();
-			if (stage)
-			{
-				stage.align = StageAlign.TOP_LEFT;
-				stage.scaleMode = StageScaleMode.NO_SCALE;
-			}
-			
-			loaderInfo.addEventListener(flash.events.Event.INIT, initHandler);
-		}
-		
-		private function initHandler(event:flash.events.Event):void
-		{
-			MXMLDataInterpreter.generateMXMLProperties(this, MXMLProperties);
-			
-			ValuesManager.valuesImpl = valuesImpl;
-			ValuesManager.valuesImpl.init(this);
-			
-			dispatchEvent(new Event("initialize"));
-			
-			addElement(initialView);
-			initialView.initUI(model);
-			dispatchEvent(new Event("viewChanged"));
-		}
-		
-		public var valuesImpl:IValuesImpl;
-		
-		public var initialView:ViewBase;
-		
-		public var model:Object;
-		
-		public var controller:Object;
-		
-		public function get MXMLDescriptor():Array
-		{
-			return null;
-		}
-		
-		public function get MXMLProperties():Array
-		{
-			return null;
-		}
-		
-		// beads declared in MXML are added to the strand.
-		// from AS, just call addBead()
-		public var beads:Array;
-		
-		private var _beads:Vector.<IBead>;
-		public function addBead(bead:IBead):void
-		{
-			if (!_beads)
-				_beads = new Vector.<IBead>;
-			_beads.push(bead);
-			bead.strand = this;
-		}
-		
-		public function getBeadByType(classOrInterface:Class):IBead
-		{
-			for each (var bead:IBead in _beads)
-			{
-				if (bead is classOrInterface)
-					return bead;
-			}
-			return null;
-		}
-		
-		public function removeBead(value:IBead):IBead	
-		{
-			var n:int = _beads.length;
-			for (var i:int = 0; i < n; i++)
-			{
-				var bead:IBead = _beads[i];
-				if (bead == value)
-				{
-					_beads.splice(i, 1);
-					return bead;
-				}
-			}
-			return null;
-		}
-		
-		public function info():Object
-		{
-			return {};           
 		}
         
-        public function addElement(c:Object):void
+        COMPILE::JS
+        private var stage:Stage;
+        
+        /**
+         * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+         * @flexjsignorecoercion HTMLBodyElement
+         * @flexjsignorecoercion HTMLCanvasElement
+         */
+        COMPILE::JS
+		override public function start():void
+        {
+            var body:HTMLBodyElement;
+            var canvas:HTMLCanvasElement;
+            
+            // For createjs, the application is the same as the canvas
+            // and it provides convenient access to the stage.
+            
+            element = document.createElement('canvas') as WrappedHTMLElement;
+            canvas = element as HTMLCanvasElement;
+            canvas.id = 'flexjsCanvas';
+            canvas.width = 700;
+            canvas.height = 500;
+            
+            body = document.getElementsByTagName('body')[0] as HTMLBodyElement;
+            body.appendChild(this.element);
+            
+            stage = new createjs.Stage('flexjsCanvas');
+
+            /* AJH is this needed
+            MXMLDataInterpreter.generateMXMLProperties(this,
+                MXMLProperties);
+            */
+            
+            dispatchEvent('initialize');
+            
+            initialView.applicationModel = this.model;
+            addElement(initialView);
+            
+            dispatchEvent('viewChanged');
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.DisplayObject
+         */
+        COMPILE::JS
+        override public function addElement(c:Object, dispatchEvent:Boolean = true):void
         {
-            addChild(c as DisplayObject);
+            stage.addChild(c as DisplayObject);
+            c.addedToParent();
         }
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b7f2c06/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/CheckBox.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/CheckBox.as b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/CheckBox.as
index 571afa9..d072e82 100644
--- a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/CheckBox.as
+++ b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/CheckBox.as
@@ -18,9 +18,105 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.createjs
 {
-	import org.apache.flex.html.CheckBox;
+    COMPILE::AS3
+    {
+        import org.apache.flex.html.CheckBox;            
+    }
+    COMPILE::JS
+    {
+        import createjs.Container;
+        import createjs.Shape;
+        import createjs.Text;
+        
+        import org.apache.flex.createjs.core.UIBase;
+        import org.apache.flex.core.WrappedHTMLElement;
+        import org.apache.flex.events.Event;
+    }
 	
+    COMPILE::AS3
 	public class CheckBox extends org.apache.flex.html.CheckBox
 	{	
 	}
+    
+    COMPILE::JS
+    public class CheckBox extends UIBase
+    {
+        private var checkMark:Shape;
+        private var checkMarkBackground:Shape;
+        private var checkBoxLabel:Text;
+        
+        /**
+         * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+         */
+        override public function createElement():WrappedHTMLElement
+        {
+            checkMarkBackground = new createjs.Shape(null);
+            checkMarkBackground.name = 'checkmarkbackground';
+            checkMarkBackground.graphics.beginFill('red').
+                drawRoundRect(0, 0, 40, 40, 8);
+            
+            checkMark = new createjs.Shape(null);
+            checkMark.name = 'checkmark';
+            checkMark.graphics.beginFill('white').drawRoundRect(0, 0, 32, 32, 6);
+            checkMark.x = 4;
+            checkMark.y = 4;
+            checkMark.visible = false;
+            
+            checkBoxLabel = new createjs.Text('checkbox', '20px Arial', '#ff7700');
+            checkBoxLabel.name = 'label';
+            checkBoxLabel.textAlign = 'left';
+            checkBoxLabel.textBaseline = 'middle';
+            checkBoxLabel.x = 45;
+            checkBoxLabel.y = 40 / 2;
+            
+            var container:createjs.Container = new createjs.Container();
+            element = container as WrappedHTMLElement;
+            container.name = 'checkbox';
+            container.addChild(this.checkMarkBackground);
+            container.addChild(this.checkBoxLabel);
+            container.addChild(this.checkMark);
+            container.onClick = clickHandler;
+            
+            this.positioner = this.element;
+            this.positioner.style.position = 'relative';
+            
+            return this.element;
+        }
+        
+        public function get text():String
+        {
+            return checkBoxLabel.text;   
+        }
+        
+        public function set text(value:String):void
+        {
+            checkBoxLabel.text = value;
+        }
+            
+        public function get selected():Boolean
+        {
+            return checkMark.visible;
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.Container
+         */
+        public function set selected(value:Boolean):void
+        {
+            checkMark.visible = value;
+            (element as Container).getStage().update();
+        }
+        
+        
+        /**
+         * @param event The event.
+         */
+        private function clickHandler(event:Event):void
+        {
+            selected = !selected;
+        }
+
+        
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b7f2c06/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/UIBase.as b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/UIBase.as
index dcb1e7c..b3051d7 100644
--- a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/UIBase.as
+++ b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/UIBase.as
@@ -18,44 +18,223 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.createjs.core
 {
-	import flash.display.DisplayObjectContainer;
-	import flash.display.Sprite;
+    import org.apache.flex.core.HTMLElementWrapper;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.IBeadModel;
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
-	public class UIBase extends Sprite implements IStrand, IEventDispatcher
+    COMPILE::JS
+    {
+        import createjs.Container;
+        import createjs.DisplayObject;
+        import org.apache.flex.core.WrappedHTMLElement;
+    }
+        
+	public class UIBase extends HTMLElementWrapper implements IStrand, IEventDispatcher
 	{
 		public function UIBase()
 		{
 			super();
+            COMPILE::JS
+            {
+                createElement();                    
+            }
 		}
 		
+        COMPILE::JS
+        public var positioner:WrappedHTMLElement;
+        
+        /**
+         * @flexjsignorecoercion createjs.Container
+         * @flexjsignorecoercion createjs.DisplayObject
+         */
+        COMPILE::JS
+        public function addElement(c:Object, dispatchEvent:Boolean = true):void
+        {
+            (element as Container).addChild(c as DisplayObject);
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.Container
+         * @flexjsignorecoercion createjs.DisplayObject
+         */
+        COMPILE::JS
+        public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+        {
+            (element as Container).addChildAt(c as DisplayObject, index);
+        }
+        
+        
+        /**
+         * @flexjsignorecoercion createjs.Container
+         * @flexjsignorecoercion createjs.DisplayObject
+         */
+        COMPILE::JS
+        public function getElementIndex(c:Object):int
+        {
+            return (element as Container).getChildIndex(c as DisplayObject);
+        }
+        
+
+        /**
+         * @flexjsignorecoercion createjs.Container
+         * @flexjsignorecoercion createjs.DisplayObject
+         */
+        COMPILE::JS
+        public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+        {
+            (element as Container).removeChild(c as DisplayObject);
+        }
+        
+
+        /**
+         * @flexjsignorecoercion createjs.Container
+         * @flexjsignorecoercion createjs.DisplayObject
+         */
+        COMPILE::JS
+        public function getElementAt(index:int):Object
+        {
+            return (element as Container).getChildAt(index);
+        }
+        
+
+        /**
+         * @flexjsignorecoercion createjs.Container
+         * @flexjsignorecoercion createjs.DisplayObject
+         */
+        COMPILE::JS
+        public function get numElements():int
+        {
+            return (element as Container).numChildren;
+        }
+
+        /**
+         * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement;
+         */
+        COMPILE::JS
+        public function createElement():WrappedHTMLElement
+        {
+            element = new Container() as WrappedHTMLElement;
+            
+            positioner = this.element;
+            positioner.style.position = 'relative';
+            return element;
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function get x():Number
+        {
+            return (positioner as Container).x;
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function set x(value:Number):void
+        {
+            var container:Container = positioner as Container;
+            container.x = value;
+            container.getStage().update();
+        }
+
+        
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function get y():Number
+        {
+            return (positioner as Container).y;
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function set y(value:Number):void
+        {
+            var container:Container = positioner as Container;
+            container.y = value;
+            container.getStage().update();
+        }        
+        
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function get width():Number
+        {
+            return (positioner as Container).width;
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function set width(value:Number):void
+        {
+            var container:Container = positioner as Container;
+            container.width = value;
+            container.getStage().update();
+        }
+
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function get height():Number
+        {
+            return (positioner as Container).height;
+        }
+        
+        /**
+         * @flexjsignorecoercion createjs.Container;
+         */
+        COMPILE::JS
+        public function set height(value:Number):void
+        {
+            var container:Container = positioner as Container;
+            container.height = value;
+            container.getStage().update();
+        }
+        
+        COMPILE::AS3
 		private var _width:Number = 0;
+        COMPILE::AS3
 		override public function get width():Number
 		{
-			return _width;
+            return _width;                    
 		}
+        
+        COMPILE::AS3
 		override public function set width(value:Number):void
 		{
-			if (_width != value)
-			{
-				_width = value;
-				dispatchEvent(new Event("widthChanged"));
-			}
+            if (_width != value)
+            {
+                _width = value;
+                dispatchEvent(new Event("widthChanged"));
+            }                    
 		}
+        COMPILE::AS3
 		protected function get $width():Number
 		{
 			return super.width;
 		}
 		
+        COMPILE::AS3
 		private var _height:Number = 0;
+        COMPILE::AS3
 		override public function get height():Number
 		{
 			return _height;
 		}
+        COMPILE::AS3
 		override public function set height(value:Number):void
 		{
 			if (_height != value)
@@ -64,16 +243,20 @@ package org.apache.flex.createjs.core
 				dispatchEvent(new Event("heightChanged"));
 			}
 		}
+        COMPILE::AS3
 		protected function get $height():Number
 		{
 			return super.height;
 		}
 		
+        COMPILE::AS3
 		private var _model:IBeadModel;
+        COMPILE::AS3
 		public function get model():IBeadModel
 		{
 			return _model;
 		}
+        COMPILE::AS3
 		public function set model(value:IBeadModel):void
 		{
 			if (_model != value)
@@ -99,10 +282,13 @@ package org.apache.flex.createjs.core
 		
 		// beads declared in MXML are added to the strand.
 		// from AS, just call addBead()
+        COMPILE::AS3
 		public var beads:Array;
 		
+        COMPILE::AS3
 		private var _beads:Vector.<IBead>;
-		public function addBead(bead:IBead):void
+        COMPILE::AS3
+		override public function addBead(bead:IBead):void
 		{
 			if (!_beads)
 				_beads = new Vector.<IBead>;
@@ -112,6 +298,7 @@ package org.apache.flex.createjs.core
 			bead.strand = this;
 		}
 		
+        COMPILE::AS3
 		public function getBeadByType(classOrInterface:Class):IBead
 		{
 			for each (var bead:IBead in _beads)
@@ -122,6 +309,7 @@ package org.apache.flex.createjs.core
 			return null;
 		}
 		
+        COMPILE::AS3
 		public function removeBead(value:IBead):IBead	
 		{
 			var n:int = _beads.length;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b7f2c06/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/ViewBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/ViewBase.as b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/ViewBase.as
index d3ffe23..3331b8a 100644
--- a/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/ViewBase.as
+++ b/frameworks/projects/CreateJS/as/src/org/apache/flex/createjs/core/ViewBase.as
@@ -18,7 +18,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.createjs.core
 {
-	import flash.display.DisplayObject;
+    COMPILE::AS3
+    {
+        import flash.display.DisplayObject;            
+    }
 	
 	import org.apache.flex.core.IParent;
 	import org.apache.flex.core.IUIBase;
@@ -37,7 +40,9 @@ package org.apache.flex.createjs.core
 		{
 			_applicationModel = model;
 			dispatchEvent(new Event("modelChanged"));
+            /* AJH needed?
 			MXMLDataInterpreter.generateMXMLProperties(this, MXMLProperties);
+            */
 			MXMLDataInterpreter.generateMXMLInstances(this, this, MXMLDescriptor);
 		}
 		
@@ -46,11 +51,13 @@ package org.apache.flex.createjs.core
 			return null;
 		}
 		
+        /*
 		public function get MXMLProperties():Array
 		{
 			return null;
 		}
-		
+		*/
+        
 		public var mxmlContent:Array;
 		
 		private var _applicationModel:Object;
@@ -61,31 +68,37 @@ package org.apache.flex.createjs.core
 			return _applicationModel;
 		}
         
+        COMPILE::AS3
         public function addElement(c:Object, dispatchEvent:Boolean = true):void
         {
             addChild(c as DisplayObject);
         }
 
+        COMPILE::AS3
         public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
         {
             addChildAt(c as DisplayObject, index);
         }
         
+        COMPILE::AS3
         public function getElementAt(index:int):Object
         {
             return getChildAt(index);
         }
         
+        COMPILE::AS3
         public function getElementIndex(c:Object):int
         {
             return getChildIndex(c as DisplayObject);
         }
         
+        COMPILE::AS3
         public function removeElement(c:Object, dispatchEvent:Boolean = true):void
         {
             removeChild(c as DisplayObject);
         }
         
+        COMPILE::AS3
         public function get numElements():int
         {
             return numChildren;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b7f2c06/frameworks/projects/CreateJS/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/build.xml b/frameworks/projects/CreateJS/build.xml
index 8aa4f7f..742c197 100644
--- a/frameworks/projects/CreateJS/build.xml
+++ b/frameworks/projects/CreateJS/build.xml
@@ -28,8 +28,6 @@
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
     <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
     <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <property name="gjslint" value="gjslint" />
-    <property name="jshint" value="jshint" />
     <condition property="no.lint" value="true">
         <os family="windows"/>
     </condition>
@@ -37,7 +35,7 @@
     <target name="main" depends="clean,compile,test" description="Clean build of CreateJS.swc">
     </target>
 
-    <target name="all" depends="main,compile-asjs,lint-js,test-js" description="Full build of Binding.swc">
+    <target name="all" depends="clean,compile-asjs,compile-extern-swc,copy-js,compile,test" description="Full build of CreateJS.swc">
     </target>
 
     <target name="test" unless="is.jenkins">
@@ -95,46 +93,79 @@
             <load-config filename="compile-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-define=COMPILE::AS3,true" />
+            <arg value="-define=COMPILE::JS,false" />
         </compc>
     </target>
 
     <target name="compile-asjs" >
-        <!-- nothing to cross-compile yet -->
+        <echo message="Cross-compiling CreateJS"/>
+        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
+        <java jar="${FALCONJX_HOME}/lib/compc.jar" fork="true" >
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Dflexcompiler=${FALCONJX_HOME}/../compiler" />
+            <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
+            <arg value="+flexlib=${FLEX_HOME}/frameworks" />
+            <arg value="-js-output-type=FLEXJS" />
+            <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
+            <arg value="-output=${basedir}/js/out" />
+            <arg value="-load-config=${basedir}/compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-external-library-path+=${FALCONJX_HOME}/../externs/js/out/bin/js.swc" />
+            <arg value="-external-library-path+=${FALCONJX_HOME}/../externs/createjs/out/bin/createjs.swc" />
+            <!-- this is not on external-library path otherwise goog.requires are not generated -->
+            <arg value="-library-path+=${FALCONJX_HOME}/../externs/GCL/out/bin/GCL.swc" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+        </java>
+    </target>
+
+    <target name="compile-extern-swc" description="Compiles .as files into .swc used for cross-compiling other projects">
+        <echo message="Compiling externs/CreateJS.swc"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${FLEXJS_HOME}/frameworks/externs"/>
+        
+        <!-- Load the <compc> task. We can't do this at the <project> level -->
+        <!-- because targets that run before flexTasks.jar gets built would fail. -->
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+        <!--
+         Link in the classes (and their dependencies) for the MXML tags
+         listed in this project's manifest.xml.
+         Also link the additional classes (and their dependencies)
+         listed in CoreClasses.as,
+         because these aren't referenced by the manifest classes.
+         Keep the standard metadata when compiling.
+         Include the appropriate CSS files and assets in the SWC.
+         Don't include any resources in the SWC.
+         Write a bundle list of referenced resource bundles
+         into the file bundles.properties in this directory.
+         -->
+        <compc fork="true"
+            output="${FLEXJS_HOME}/frameworks/externs/CreateJS.swc">
+            <jvmarg line="${compc.jvm.args}"/>
+            <load-config filename="compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-external-library-path+=${FALCONJX_HOME}/../externs/js/out/bin/js.swc" />
+            <arg value="-external-library-path+=${FALCONJX_HOME}/../externs/createjs/out/bin/createjs.swc" />
+            <!-- this is not on external-library path otherwise goog.requires are not generated -->
+            <arg value="-library-path+=${FALCONJX_HOME}/../externs/GCL/out/bin/GCL.swc" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+        </compc>
     </target>
 
-    <target name="lint-js" depends="gjslint, jshint, copy-js" />
     <target name="copy-js" >
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-            <fileset dir="${basedir}/js/src">
+            <fileset dir="${basedir}/js/out">
                 <include name="**/**" />
             </fileset>
         </copy>
     </target>
 
-    <target name="gjslint" unless="no.lint">
-        <echo>running gjslint</echo>
-        <exec executable="${gjslint}" dir="${basedir}" failonerror="true">
-            <arg value="--strict" />
-            <arg value="--disable" />
-            <arg value="006,100,214,300" />
-            <!-- 006: wrong indentation -->
-            <!-- 100: cannot have non-primitive value -->
-            <!-- 214: @fileoverview tag missing description -->
-            <!-- 300: missing newline at end of file -->
-            <arg value="--max_line_length" />
-            <arg value="120" />
-            <arg value="-r" />
-            <arg value="${basedir}/js/src" />
-        </exec>
-    </target>
-
-    <target name="jshint" unless="no.lint">
-        <echo>running jshint</echo>
-        <exec executable="${jshint}" dir="${basedir}" failonerror="true">
-            <arg value="--config" />
-            <arg value="${FLEX_HOME}/frameworks/js/jshint.properties" />
-            <arg value="${basedir}/js/src" />
-        </exec>
-    </target>
-
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b7f2c06/frameworks/projects/CreateJS/compile-asjs-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/compile-asjs-config.xml b/frameworks/projects/CreateJS/compile-asjs-config.xml
new file mode 100644
index 0000000..35c65b3
--- /dev/null
+++ b/frameworks/projects/CreateJS/compile-asjs-config.xml
@@ -0,0 +1,83 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+        </external-library-path>
+        
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <library-path>
+        </library-path>
+        
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/createjs</uri>
+                <manifest>createjs-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>as/src</path-element>
+        </source-path>
+        
+        <library-path>
+            <path-element>../../externs/Core.swc</path-element>
+            <path-element>../../externs/HTML.swc</path-element>
+        </library-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+    </include-file>
+
+    <include-sources>
+    </include-sources>
+    
+    <include-classes>
+        <class>CreateJSClasses</class>
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/createjs</uri>
+    </include-namespaces>
+    
+    <!--<target-player>${playerglobal.version}</target-player>-->
+	
+
+</flex-config>