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 2014/05/06 09:17:26 UTC

[1/9] git commit: [flex-asjs] [refs/heads/develop] - ignore bin folders in examples

Repository: flex-asjs
Updated Branches:
  refs/heads/develop 28a54c49a -> 599b6e05a


ignore bin folders in examples


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

Branch: refs/heads/develop
Commit: a89d98ecc5134e49a06373d602f258b25c941af1
Parents: 28a54c4
Author: Alex Harui <ah...@apache.org>
Authored: Mon May 5 13:29:54 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon May 5 13:29:54 2014 -0700

----------------------------------------------------------------------
 examples/.gitignore | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a89d98ec/examples/.gitignore
----------------------------------------------------------------------
diff --git a/examples/.gitignore b/examples/.gitignore
new file mode 100644
index 0000000..e660fd9
--- /dev/null
+++ b/examples/.gitignore
@@ -0,0 +1 @@
+bin/


[6/9] git commit: [flex-asjs] [refs/heads/develop] - fix linting error

Posted by ah...@apache.org.
fix linting error


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

Branch: refs/heads/develop
Commit: 9d6be6b3e62a788113fa14e2ad187d1a319a9eb5
Parents: 9c9d52e
Author: Alex Harui <ah...@apache.org>
Authored: Tue May 6 00:08:18 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue May 6 00:08:18 2014 -0700

----------------------------------------------------------------------
 frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js   | 2 +-
 frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9d6be6b3/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js b/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
index 88b735e..10cf2d7 100644
--- a/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
+++ b/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
@@ -15,7 +15,7 @@
 /*
  FalconJX will inject html into the index.html file.  Surround with
  "inject_html" tag as follows:
- 
+
  <inject_html>
     <script type="text/javascript" src="cordova.js"></script>
  </inject_html>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9d6be6b3/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js b/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
index b98533d..3aaa7c2 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
@@ -15,7 +15,7 @@
 /*
 FalconJX will inject html into the index.html file.  Surround with
 "inject_html" tag as follows:
- 
+
 <inject_html>
 <link rel="stylesheet"
     href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />


[4/9] git commit: [flex-asjs] [refs/heads/develop] - switch to inject html

Posted by ah...@apache.org.
switch to inject html


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

Branch: refs/heads/develop
Commit: 7030b0e5d131fbe942651970f1b658a8aa95d351
Parents: 37a7c62
Author: Alex Harui <ah...@apache.org>
Authored: Mon May 5 13:32:04 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon May 5 13:32:04 2014 -0700

----------------------------------------------------------------------
 .../src/org/apache/flex/jquery/Application.js   | 23 ++++++++++----------
 1 file changed, 11 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7030b0e5/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js b/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
index 90f2912..b98533d 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/jquery/Application.js
@@ -12,18 +12,17 @@
  * limitations under the License.
  */
 
-// ------------------------------------------------------------------
-// jquery
-// ------------------------------------------------------------------
-
-// <link rel="stylesheet"
-// href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
-//  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
-//  <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
-
-// ------------------------------------------------------------------
-// end jquery
-// ------------------------------------------------------------------
+/*
+FalconJX will inject html into the index.html file.  Surround with
+"inject_html" tag as follows:
+ 
+<inject_html>
+<link rel="stylesheet"
+    href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
+<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
+<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
+</inject_html>
+*/
 
 goog.provide('org.apache.flex.jquery.Application');
 


[8/9] git commit: [flex-asjs] [refs/heads/develop] - make AS Camera actually take a picture. Needs better UI at some point

Posted by ah...@apache.org.
make AS Camera actually take a picture.  Needs better UI at some point


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

Branch: refs/heads/develop
Commit: b83027c65bbf7387792d29e63fb580602d783fe7
Parents: 135f04d
Author: Alex Harui <ah...@apache.org>
Authored: Tue May 6 00:12:22 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue May 6 00:12:22 2014 -0700

----------------------------------------------------------------------
 frameworks/as/projects/FlexJSUI/build.xml       |   2 +-
 .../as/projects/FlexJSUI/compile-config.xml     |   2 +-
 .../src/org/apache/cordova/camera/Camera.as     |  95 +++++-
 .../src/org/apache/flex/utils/PNGEncoder.as     | 304 +++++++++++++++++++
 .../flex/utils/ViewSourceContextMenuOption.as   |   2 +-
 5 files changed, 395 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b83027c6/frameworks/as/projects/FlexJSUI/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/build.xml b/frameworks/as/projects/FlexJSUI/build.xml
index 514b42d..3dfe5d8 100644
--- a/frameworks/as/projects/FlexJSUI/build.xml
+++ b/frameworks/as/projects/FlexJSUI/build.xml
@@ -72,7 +72,7 @@
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="compile-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
-            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
         </compc>
     </target>
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b83027c6/frameworks/as/projects/FlexJSUI/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/compile-config.xml b/frameworks/as/projects/FlexJSUI/compile-config.xml
index a72ad58..7db518e 100644
--- a/frameworks/as/projects/FlexJSUI/compile-config.xml
+++ b/frameworks/as/projects/FlexJSUI/compile-config.xml
@@ -22,7 +22,7 @@
         <accessible>false</accessible>
         
         <external-library-path>
-            <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element>
+            <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
         </external-library-path>
         
         <locale/>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b83027c6/frameworks/as/projects/FlexJSUI/src/org/apache/cordova/camera/Camera.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/cordova/camera/Camera.as b/frameworks/as/projects/FlexJSUI/src/org/apache/cordova/camera/Camera.as
index 9a8a980..3984b44 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/cordova/camera/Camera.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/cordova/camera/Camera.as
@@ -18,6 +18,25 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.cordova.camera
 {
+	import flash.display.BitmapData;
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Sprite;
+	import flash.events.ActivityEvent;
+	import flash.events.KeyboardEvent;
+	import flash.events.MouseEvent;
+	import flash.filesystem.File;
+	import flash.filesystem.FileMode;
+	import flash.filesystem.FileStream;
+	import flash.geom.Rectangle;
+	import flash.media.Camera;
+	import flash.media.Video;
+	import flash.ui.Keyboard;
+	import flash.utils.ByteArray;
+	
+	import org.apache.flex.utils.PNGEncoder;
+
+	[Mixin]
 	public class Camera
 	{
 		public static var DestinationType:Object = {
@@ -48,13 +67,20 @@ package org.apache.cordova.camera
 			FRONT : 1      // Use the front-facing camera
 		};
 
+		private static var root:DisplayObjectContainer;
+		
+		public static function init(r:DisplayObjectContainer):void
+		{
+			root = r;		
+		}
+		
 		public function Camera()
 		{
-			pictureSourceType = Camera.PictureSourceType.PHOTOLIBRARY;
-			destinationType = Camera.DestinationType.DATA_URL;
-			mediaType = Camera.MediaType.PICTURE;
-			encodingType = Camera.EncodingType.JPEG;
-			direction = Camera.Direction.BACK;
+			pictureSourceType = org.apache.cordova.camera.Camera.PictureSourceType.PHOTOLIBRARY;
+			destinationType = org.apache.cordova.camera.Camera.DestinationType.DATA_URL;
+			mediaType = org.apache.cordova.camera.Camera.MediaType.PICTURE;
+			encodingType = org.apache.cordova.camera.Camera.EncodingType.JPEG;
+			direction = org.apache.cordova.camera.Camera.Direction.BACK;
 		}
 		
 		public var pictureSourceType:int;
@@ -63,14 +89,69 @@ package org.apache.cordova.camera
 		public var encodingType:int;
 		public var direction:int;
 		
+		private var cameraSuccess:Function;
+		private var cameraError:Function;
+		private var ui:Sprite;
+		private var camera:flash.media.Camera;
+		
 		public function getPicture( cameraSuccess:Function, cameraError:Function, cameraOptions:Object ) : void
 		{
-			// stub for JavaScript version
+			this.cameraSuccess = cameraSuccess;
+			this.cameraError = cameraError;
+			
+			camera = flash.media.Camera.getCamera();
+			
+			if (camera != null) {
+				ui = new Sprite();
+				var video:Video = new Video(camera.width * 2, camera.height * 2);
+				video.attachCamera(camera);
+				ui.addChild(video);
+				root.addChild(ui);
+				ui.addEventListener(MouseEvent.CLICK, mouseClickHandler);
+				ui.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
+			} else {
+				trace("You need a camera.");
+			}
+		}
+		
+		private function mouseClickHandler(event:MouseEvent):void
+		{
+			savePicture();
+			root.removeChild(ui);
+		}
+		
+		private function keyDownHandler(event:KeyboardEvent):void
+		{
+			if (event.keyCode == Keyboard.ESCAPE)
+				root.removeChild(ui);
+			else if (event.keyCode == Keyboard.ENTER || event.keyCode == Keyboard.SPACE)
+			{
+				savePicture();
+				root.removeChild(ui);
+			}
+		}
+
+		private function savePicture():void
+		{
+			var f:File = File.createTempFile();
+			var bd:BitmapData = new BitmapData(camera.width, camera.height, false);
+			var pix:ByteArray = new ByteArray();
+			var rect:Rectangle = new Rectangle(0, 0, camera.width, camera.height);
+			camera.copyToByteArray(rect, pix);
+			pix.position = 0;
+			bd.setPixels(rect, pix);
+			var png:PNGEncoder = new PNGEncoder();
+			var ba:ByteArray = png.encode(bd);
+			var fs:FileStream = new FileStream();
+			fs.open(f, FileMode.WRITE);
+			fs.writeBytes(ba);
+			fs.close();
+			cameraSuccess(f.url);
 		}
 		
 		public function cleanup( cameraSuccess:Function, cameraError:Function ) : void
 		{
-			// stub for JavaScript version
+			// no cleanup required in Flash
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b83027c6/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/PNGEncoder.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/PNGEncoder.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/PNGEncoder.as
new file mode 100644
index 0000000..bd1fce4
--- /dev/null
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/PNGEncoder.as
@@ -0,0 +1,304 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package org.apache.flex.utils
+{
+
+import flash.display.BitmapData;
+import flash.utils.ByteArray;
+
+/**
+ *  The PNGEncoder class converts raw bitmap images into encoded
+ *  images using Portable Network Graphics (PNG) lossless compression.
+ *
+ *  <p>For the PNG specification, see http://www.w3.org/TR/PNG/</p>.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class PNGEncoder
+{
+
+	// this is a copy of mx.graphics.codec.PNGEncoder
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+	 *  The MIME type for a PNG image.
+     */
+    private static const CONTENT_TYPE:String = "image/png";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function PNGEncoder()
+    {
+    	super();
+
+		initializeCRCTable();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+	 *  Used for computing the cyclic redundancy checksum
+	 *  at the end of each chunk.
+     */
+    private var crcTable:Array;
+    
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  contentType
+	//----------------------------------
+
+    /**
+     *  The MIME type for the PNG encoded image.
+     *  The value is <code>"image/png"</code>.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get contentType():String
+    {
+        return CONTENT_TYPE;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Converts the pixels of a BitmapData object
+	 *  to a PNG-encoded ByteArray object.
+     *
+     *  @param bitmapData The input BitmapData object.
+     *
+     *  @return Returns a ByteArray object containing PNG-encoded image data.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function encode(bitmapData:BitmapData):ByteArray
+    {
+        return internalEncode(bitmapData, bitmapData.width, bitmapData.height,
+							  bitmapData.transparent);
+    }
+
+    /**
+     *  Converts a ByteArray object containing raw pixels
+	 *  in 32-bit ARGB (Alpha, Red, Green, Blue) format
+	 *  to a new PNG-encoded ByteArray object.
+	 *  The original ByteArray is left unchanged.
+     *
+     *  @param byteArray The input ByteArray object containing raw pixels.
+	 *  This ByteArray should contain
+	 *  <code>4 * width * height</code> bytes.
+	 *  Each pixel is represented by 4 bytes, in the order ARGB.
+	 *  The first four bytes represent the top-left pixel of the image.
+	 *  The next four bytes represent the pixel to its right, etc.
+	 *  Each row follows the previous one without any padding.
+     *
+     *  @param width The width of the input image, in pixels.
+     *
+     *  @param height The height of the input image, in pixels.
+     *
+     *  @param transparent If <code>false</code>, alpha channel information
+	 *  is ignored but you still must represent each pixel 
+     *  as four bytes in ARGB format.
+     *
+     *  @return Returns a ByteArray object containing PNG-encoded image data. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function encodeByteArray(byteArray:ByteArray, width:int, height:int,
+									transparent:Boolean = true):ByteArray
+    {
+        return internalEncode(byteArray, width, height, transparent);
+    }
+
+    /**
+	 *  @private
+	 */
+	private function initializeCRCTable():void
+	{
+        crcTable = [];
+
+        for (var n:uint = 0; n < 256; n++)
+        {
+            var c:uint = n;
+            for (var k:uint = 0; k < 8; k++)
+            {
+                if (c & 1)
+                    c = uint(uint(0xedb88320) ^ uint(c >>> 1));
+				else
+                    c = uint(c >>> 1);
+             }
+            crcTable[n] = c;
+        }
+	}
+
+    /**
+	 *  @private
+	 */
+	private function internalEncode(source:Object, width:int, height:int,
+									transparent:Boolean = true):ByteArray
+    {
+     	// The source is either a BitmapData or a ByteArray.
+    	var sourceBitmapData:BitmapData = source as BitmapData;
+    	var sourceByteArray:ByteArray = source as ByteArray;
+    	
+    	if (sourceByteArray)
+    		sourceByteArray.position = 0;
+    	
+        // Create output byte array
+        var png:ByteArray = new ByteArray();
+
+        // Write PNG signature
+        png.writeUnsignedInt(0x89504E47);
+        png.writeUnsignedInt(0x0D0A1A0A);
+
+        // Build IHDR chunk
+        var IHDR:ByteArray = new ByteArray();
+        IHDR.writeInt(width);
+        IHDR.writeInt(height);
+		IHDR.writeByte(8); // bit depth per channel
+		IHDR.writeByte(6); // color type: RGBA
+		IHDR.writeByte(0); // compression method
+		IHDR.writeByte(0); // filter method
+        IHDR.writeByte(0); // interlace method
+        writeChunk(png, 0x49484452, IHDR);
+
+        // Build IDAT chunk
+        var IDAT:ByteArray = new ByteArray();
+        for (var y:int = 0; y < height; y++)
+        {
+            IDAT.writeByte(0); // no filter
+
+            var x:int;
+            var pixel:uint;
+            
+			if (!transparent)
+            {
+                for (x = 0; x < width; x++)
+                {
+                    if (sourceBitmapData)
+                    	pixel = sourceBitmapData.getPixel(x, y);
+                   	else
+             			pixel = sourceByteArray.readUnsignedInt();
+					
+					IDAT.writeUnsignedInt(uint(((pixel & 0xFFFFFF) << 8) | 0xFF));
+                }
+            }
+            else
+            {
+                for (x = 0; x < width; x++)
+                {
+                    if (sourceBitmapData)
+                   		pixel = sourceBitmapData.getPixel32(x, y);
+                    else
+						pixel = sourceByteArray.readUnsignedInt();
+ 
+                    IDAT.writeUnsignedInt(uint(((pixel & 0xFFFFFF) << 8) |
+												(pixel >>> 24)));
+                }
+            }
+        }
+        IDAT.compress();
+        writeChunk(png, 0x49444154, IDAT);
+
+        // Build IEND chunk
+        writeChunk(png, 0x49454E44, null);
+
+        // return PNG
+        png.position = 0;
+        return png;
+    }
+
+    /**
+	 *  @private
+	 */
+	private function writeChunk(png:ByteArray, type:uint, data:ByteArray):void
+    {
+        // Write length of data.
+        var len:uint = 0;
+        if (data)
+            len = data.length;
+		png.writeUnsignedInt(len);
+        
+		// Write chunk type.
+		var typePos:uint = png.position;
+		png.writeUnsignedInt(type);
+        
+		// Write data.
+		if (data)
+            png.writeBytes(data);
+
+        // Write CRC of chunk type and data.
+		var crcPos:uint = png.position;
+        png.position = typePos;
+        var crc:uint = 0xFFFFFFFF;
+        for (var i:uint = typePos; i < crcPos; i++)
+        {
+            crc = uint(crcTable[(crc ^ png.readUnsignedByte()) & uint(0xFF)] ^
+					   uint(crc >>> 8));
+        }
+        crc = uint(crc ^ uint(0xFFFFFFFF));
+        png.position = crcPos;
+        png.writeUnsignedInt(crc);
+    }
+}
+
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b83027c6/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/ViewSourceContextMenuOption.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/ViewSourceContextMenuOption.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/ViewSourceContextMenuOption.as
index 5dc0a3b..23a1324 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/ViewSourceContextMenuOption.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/ViewSourceContextMenuOption.as
@@ -69,7 +69,7 @@ public class ViewSourceContextMenuOption implements IBead
 		_strand = value;
 		
 		var menuHost:InteractiveObject = InteractiveObject(value);
-		var cm:ContextMenu = menuHost.contextMenu;
+		var cm:ContextMenu = ContextMenu(menuHost.contextMenu);
 		if (!cm)
 		{
 			cm = new ContextMenu();


[7/9] git commit: [flex-asjs] [refs/heads/develop] - fix linting error

Posted by ah...@apache.org.
fix linting error


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

Branch: refs/heads/develop
Commit: 135f04d31aa1b3b007ec3edff66153c523e484b0
Parents: 9d6be6b
Author: Alex Harui <ah...@apache.org>
Authored: Tue May 6 00:08:42 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue May 6 00:08:42 2014 -0700

----------------------------------------------------------------------
 frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/135f04d3/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js b/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
index 76a86ae..2611318 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
@@ -35,7 +35,7 @@ goog.inherits(org.apache.flex.jquery.RadioButton,
 
 /**
  * @expose
- * @type {string|null}
+ * @type {?string}
  * The name of the radioGroup.
  */
 org.apache.flex.jquery.RadioButton.prototype.radioGroupName = null;
@@ -87,6 +87,7 @@ org.apache.flex.jquery.RadioButton.prototype.createElement =
 
 /**
  * @param {Object} doc the document for this item.
+ * @param {string} id the id in the document for this item.
  */
 org.apache.flex.jquery.RadioButton.prototype.setDocument =
     function(doc, id) {
@@ -116,7 +117,7 @@ org.apache.flex.jquery.RadioButton.prototype.initHandler =
 
 /**
  * @expose
- * @return {string|null} The groupName getter.
+ * @return {?string} The groupName getter.
  */
 org.apache.flex.jquery.RadioButton.prototype.get_groupName =
     function() {


[5/9] git commit: [flex-asjs] [refs/heads/develop] - clean up some warnings

Posted by ah...@apache.org.
clean up some warnings


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

Branch: refs/heads/develop
Commit: 9c9d52ecde3654417fb85ee96270f840f55d3f1e
Parents: 7030b0e
Author: Alex Harui <ah...@apache.org>
Authored: Mon May 5 13:32:15 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon May 5 13:32:15 2014 -0700

----------------------------------------------------------------------
 frameworks/js/FlexJS/src/org/apache/flex/jquery/CheckBox.js | 5 +++--
 .../js/FlexJS/src/org/apache/flex/jquery/RadioButton.js     | 9 +++++----
 .../js/FlexJS/src/org/apache/flex/jquery/TextButton.js      | 1 +
 3 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c9d52ec/frameworks/js/FlexJS/src/org/apache/flex/jquery/CheckBox.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/jquery/CheckBox.js b/frameworks/js/FlexJS/src/org/apache/flex/jquery/CheckBox.js
index ba28a73..184e84b 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/jquery/CheckBox.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/jquery/CheckBox.js
@@ -54,6 +54,7 @@ org.apache.flex.jquery.CheckBox.prototype.createElement =
 
   this.positioner = this.element;
   this.element.flexjs_wrapper = this;
+  return this.element;
 };
 
 
@@ -78,7 +79,7 @@ org.apache.flex.jquery.CheckBox.prototype.set_text =
 
 /**
  * @expose
- * @return {bool} The selected getter.
+ * @return {boolean} The selected getter.
  */
 org.apache.flex.jquery.CheckBox.prototype.get_selected =
     function() {
@@ -88,7 +89,7 @@ org.apache.flex.jquery.CheckBox.prototype.get_selected =
 
 /**
  * @expose
- * @param {bool} value The selected setter.
+ * @param {boolean} value The selected setter.
  */
 org.apache.flex.jquery.CheckBox.prototype.set_selected =
     function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c9d52ec/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js b/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
index 89b6d77..76a86ae 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/jquery/RadioButton.js
@@ -35,6 +35,7 @@ goog.inherits(org.apache.flex.jquery.RadioButton,
 
 /**
  * @expose
+ * @type {string|null}
  * The name of the radioGroup.
  */
 org.apache.flex.jquery.RadioButton.prototype.radioGroupName = null;
@@ -80,11 +81,11 @@ org.apache.flex.jquery.RadioButton.prototype.createElement =
 
   this.positioner = this.element;
   this.flexjs_wrapper = this;
+  return this.element;
 };
 
 
 /**
- * @override
  * @param {Object} doc the document for this item.
  */
 org.apache.flex.jquery.RadioButton.prototype.setDocument =
@@ -115,7 +116,7 @@ org.apache.flex.jquery.RadioButton.prototype.initHandler =
 
 /**
  * @expose
- * @return {string} The groupName getter.
+ * @return {string|null} The groupName getter.
  */
 org.apache.flex.jquery.RadioButton.prototype.get_groupName =
     function() {
@@ -187,7 +188,7 @@ org.apache.flex.jquery.RadioButton.prototype.set_text =
 
 /**
  * @expose
- * @return {bool} The selected getter.
+ * @return {boolean} The selected getter.
  */
 org.apache.flex.jquery.RadioButton.prototype.get_selected =
     function() {
@@ -197,7 +198,7 @@ org.apache.flex.jquery.RadioButton.prototype.get_selected =
 
 /**
  * @expose
- * @param {bool} value The selected setter.
+ * @param {boolean} value The selected setter.
  */
 org.apache.flex.jquery.RadioButton.prototype.set_selected =
     function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c9d52ec/frameworks/js/FlexJS/src/org/apache/flex/jquery/TextButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/jquery/TextButton.js b/frameworks/js/FlexJS/src/org/apache/flex/jquery/TextButton.js
index 2518062..59e2457 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/jquery/TextButton.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/jquery/TextButton.js
@@ -40,6 +40,7 @@ org.apache.flex.jquery.TextButton.prototype.createElement =
 
   this.positioner = this.element;
   this.element.flexjs_wrapper = this;
+  return this.element;
 };
 
 


[2/9] git commit: [flex-asjs] [refs/heads/develop] - fix script so it runs on its own

Posted by ah...@apache.org.
fix script so it runs on its own


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

Branch: refs/heads/develop
Commit: e02da518d27941bcf77f9b98725f15a7426504a6
Parents: a89d98e
Author: Alex Harui <ah...@apache.org>
Authored: Mon May 5 13:30:52 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon May 5 13:30:52 2014 -0700

----------------------------------------------------------------------
 examples/FlexJSTest_jquery/build.xml | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e02da518/examples/FlexJSTest_jquery/build.xml
----------------------------------------------------------------------
diff --git a/examples/FlexJSTest_jquery/build.xml b/examples/FlexJSTest_jquery/build.xml
index 50ed81b..44cdb47 100644
--- a/examples/FlexJSTest_jquery/build.xml
+++ b/examples/FlexJSTest_jquery/build.xml
@@ -27,6 +27,9 @@
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <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="GOOG_HOME" value="${env.GOOG_HOME}"/>
 
     <include file="${basedir}/../build_example.xml" />
 


[3/9] git commit: [flex-asjs] [refs/heads/develop] - add header and inject html

Posted by ah...@apache.org.
add header and inject html


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

Branch: refs/heads/develop
Commit: 37a7c62ad96fda5f4a1aa3014f3d9d2c4a196a4e
Parents: e02da51
Author: Alex Harui <ah...@apache.org>
Authored: Mon May 5 13:31:42 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon May 5 13:31:42 2014 -0700

----------------------------------------------------------------------
 .../src/org/apache/cordova/camera/Camera.js     | 23 ++++++++++++++++++++
 1 file changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/37a7c62a/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js b/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
index 41af8e5..88b735e 100644
--- a/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
+++ b/frameworks/js/FlexJS/src/org/apache/cordova/camera/Camera.js
@@ -1,4 +1,27 @@
 /**
+ * Licensed 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.
+ */
+
+/*
+ FalconJX will inject html into the index.html file.  Surround with
+ "inject_html" tag as follows:
+ 
+ <inject_html>
+    <script type="text/javascript" src="cordova.js"></script>
+ </inject_html>
+ */
+
+/**
  * org.apache.cordova.camera.Camera
  *
  * @fileoverview


[9/9] git commit: [flex-asjs] [refs/heads/develop] - Camera example uses AIR on AS side and requires FP11.4/AIR3.4

Posted by ah...@apache.org.
Camera example uses AIR on AS side and requires FP11.4/AIR3.4


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

Branch: refs/heads/develop
Commit: 599b6e05ab20771c133b1b9ac9ddc26980114c87
Parents: b83027c
Author: Alex Harui <ah...@apache.org>
Authored: Tue May 6 00:16:53 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue May 6 00:16:53 2014 -0700

----------------------------------------------------------------------
 .../CordovaCameraExample-app.xml                | 252 +++++++++++++++++++
 examples/CordovaCameraExample/build.xml         |  32 ++-
 .../src/CordovaCameraExample.mxml               |   3 +
 .../CordovaCameraExample/src/MyInitialView.mxml |   2 +-
 examples/build_example.xml                      |  87 +++++++
 5 files changed, 374 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/599b6e05/examples/CordovaCameraExample/CordovaCameraExample-app.xml
----------------------------------------------------------------------
diff --git a/examples/CordovaCameraExample/CordovaCameraExample-app.xml b/examples/CordovaCameraExample/CordovaCameraExample-app.xml
new file mode 100644
index 0000000..27f8042
--- /dev/null
+++ b/examples/CordovaCameraExample/CordovaCameraExample-app.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!--
+
+  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.
+
+-->
+<application xmlns="http://ns.adobe.com/air/application/4.0">
+
+<!-- Adobe AIR Application Descriptor File Template.
+
+	Specifies parameters for identifying, installing, and launching AIR applications.
+
+	xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/3.8
+			The last segment of the namespace specifies the version
+			of the AIR runtime required for this application to run.
+
+	minimumPatchLevel - The minimum patch level of the AIR runtime required to run
+			the application. Optional.
+-->
+
+	<!-- A universally unique application identifier. Must be unique across all AIR applications.
+	Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
+	<id>org.apache.flexjs.cordovacamera</id>
+
+	<!-- Used as the filename for the application. Required. -->
+	<filename>Apache FlexJS Cordova Camera Example</filename>
+
+	<!-- The name that is displayed in the AIR application installer.
+	May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<name>Apache FlexJS Cordova Camera Example</name>
+
+	<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
+	Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
+	An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
+	<versionNumber>0.0.1</versionNumber>
+
+	<!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. -->
+	<!-- <versionLabel></versionLabel> -->
+
+	<!-- Description, displayed in the AIR application installer.
+	May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<!-- <description></description> -->
+
+	<!-- Copyright information. Optional -->
+	<copyright>Copyright 2013 The Apache Software Foundation.</copyright>
+
+	<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
+	<!-- <publisherID></publisherID> -->
+
+	<!-- Settings for the application's initial window. Required. -->
+	<initialWindow>
+		<!-- The main SWF or HTML file of the application. Required. -->
+		<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
+		<content>CordovaCameraExample.swf</content>
+
+		<!-- The title of the main window. Optional. -->
+		<!-- <title></title> -->
+
+		<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
+		<!-- <systemChrome></systemChrome> -->
+
+		<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
+		<!-- <transparent></transparent> -->
+
+		<!-- Whether the window is initially visible. Optional. Default false. -->
+		<!-- <visible></visible> -->
+
+		<!-- Whether the user can minimize the window. Optional. Default true. -->
+		<!-- <minimizable></minimizable> -->
+
+		<!-- Whether the user can maximize the window. Optional. Default true. -->
+		<!-- <maximizable></maximizable> -->
+
+		<!-- Whether the user can resize the window. Optional. Default true. -->
+		<!-- <resizable></resizable> -->
+
+		<!-- The window's initial width in pixels. Optional. -->
+		<!-- <width></width> -->
+
+		<!-- The window's initial height in pixels. Optional. -->
+		<!-- <height></height> -->
+
+		<!-- The window's initial x position. Optional. -->
+		<!-- <x></x> -->
+
+		<!-- The window's initial y position. Optional. -->
+		<!-- <y></y> -->
+
+		<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
+		<!-- <minSize></minSize> -->
+
+		<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
+		<!-- <maxSize></maxSize> -->
+
+        <!-- The initial aspect ratio of the app when launched (either "portrait" or "landscape"). Optional. Mobile only. Default is the natural orientation of the device -->
+
+        <!-- <aspectRatio></aspectRatio> -->
+
+        <!-- Whether the app will begin auto-orienting on launch. Optional. Mobile only. Default false -->
+
+        <!-- <autoOrients></autoOrients> -->
+
+        <!-- Whether the app launches in full screen. Optional. Mobile only. Default false -->
+
+        <!-- <fullScreen></fullScreen> -->
+
+        <!-- The render mode for the app (either auto, cpu, gpu, or direct). Optional. Default auto -->
+
+        <!-- <renderMode></renderMode> -->
+
+		<!-- Whether or not to pan when a soft keyboard is raised or lowered (either "pan" or "none").  Optional.  Defaults "pan." -->
+		<!-- <softKeyboardBehavior></softKeyboardBehavior> -->
+	<autoOrients>false</autoOrients>
+        <fullScreen>false</fullScreen>
+        <visible>true</visible>
+    </initialWindow>
+
+	<!-- We recommend omitting the supportedProfiles element, -->
+	<!-- which in turn permits your application to be deployed to all -->
+	<!-- devices supported by AIR. If you wish to restrict deployment -->
+	<!-- (i.e., to only mobile devices) then add this element and list -->
+	<!-- only the profiles which your application does support. -->
+	<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
+	<supportedProfiles>extendedDesktop desktop</supportedProfiles>
+
+	<!-- The subpath of the standard default installation location to use. Optional. -->
+	<installFolder>Apache Flex</installFolder>
+
+	<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
+	<programMenuFolder>Apache Flex</programMenuFolder>
+
+	<!-- The icon the system uses for the application. For at least one resolution,
+	specify the path to a PNG file included in the AIR package. Optional. -->
+	<icon>
+		<image16x16>assets/icons/16.png</image16x16>
+		<image29x29>assets/icons/29.png</image29x29>
+		<image32x32>assets/icons/32.png</image32x32>
+		<image36x36>assets/icons/36.png</image36x36>
+		<image48x48>assets/icons/48.png</image48x48>
+		<image57x57>assets/icons/57.png</image57x57>
+		<image72x72>assets/icons/72.png</image72x72>
+		<image114x114>assets/icons/114.png</image114x114>
+		<image128x128>assets/icons/128.png</image128x128>
+	</icon>
+
+	<!-- Whether the application handles the update when a user double-clicks an update version
+	of the AIR file (true), or the default AIR application installer handles the update (false).
+	Optional. Default false. -->
+	<!-- <customUpdateUI></customUpdateUI> -->
+
+	<!-- Whether the application can be launched when the user clicks a link in a web browser.
+	Optional. Default false. -->
+	<!-- <allowBrowserInvocation></allowBrowserInvocation> -->
+
+	<!-- Listing of file types for which the application can register. Optional. -->
+	<!-- <fileTypes> -->
+
+		<!-- Defines one file type. Optional. -->
+		<!-- <fileType> -->
+
+			<!-- The name that the system displays for the registered file type. Required. -->
+			<!-- <name></name> -->
+
+			<!-- The extension to register. Required. -->
+			<!-- <extension></extension> -->
+
+			<!-- The description of the file type. Optional. -->
+			<!-- <description></description> -->
+
+			<!-- The MIME content type. -->
+			<!-- <contentType></contentType> -->
+
+			<!-- The icon to display for the file type. Optional. -->
+			<!-- <icon>
+				<image16x16></image16x16>
+				<image32x32></image32x32>
+				<image48x48></image48x48>
+				<image128x128></image128x128>
+			</icon> -->
+
+		<!-- </fileType> -->
+	<!-- </fileTypes> -->
+
+    <!-- iOS specific capabilities -->
+	<!-- <iPhone> -->
+		<!-- A list of plist key/value pairs to be added to the application Info.plist -->
+		<!-- <InfoAdditions>
+            <![CDATA[
+                <key>UIDeviceFamily</key>
+                <array>
+                    <string>1</string>
+                    <string>2</string>
+                </array>
+                <key>UIStatusBarStyle</key>
+                <string>UIStatusBarStyleBlackOpaque</string>
+                <key>UIRequiresPersistentWiFi</key>
+                <string>YES</string>
+            ]]>
+        </InfoAdditions> -->
+        <!-- A list of plist key/value pairs to be added to the application Entitlements.plist -->
+		<!-- <Entitlements>
+            <![CDATA[
+                <key>keychain-access-groups</key>
+                <array>
+                    <string></string>
+                    <string></string>
+                </array>
+            ]]>
+        </Entitlements> -->
+	<!-- Display Resolution for the app (either "standard" or "high"). Optional. Default "standard" -->
+	<!-- <requestedDisplayResolution></requestedDisplayResolution> -->
+	<!-- </iPhone> -->
+
+	<!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->
+    <!--<android> -->
+    <!--	<manifestAdditions>
+		<![CDATA[
+			<manifest android:installLocation="auto">
+				<uses-permission android:name="android.permission.INTERNET"/>
+				<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+				<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+				<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>
+				<application android:enabled="true">
+					<activity android:excludeFromRecents="false">
+						<intent-filter>
+							<action android:name="android.intent.action.MAIN"/>
+							<category android:name="android.intent.category.LAUNCHER"/>
+						</intent-filter>
+					</activity>
+				</application>
+            </manifest>
+		]]>
+        </manifestAdditions> -->
+	    <!-- Color depth for the app (either "32bit" or "16bit"). Optional. Default 16bit before namespace 3.0, 32bit after -->
+        <!-- <colorDepth></colorDepth> -->
+    <!-- </android> -->
+	<!-- End of the schema for adding the android specific tags in AndroidManifest.xml file -->
+
+</application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/599b6e05/examples/CordovaCameraExample/build.xml
----------------------------------------------------------------------
diff --git a/examples/CordovaCameraExample/build.xml b/examples/CordovaCameraExample/build.xml
index d8c19ae..3713c19 100644
--- a/examples/CordovaCameraExample/build.xml
+++ b/examples/CordovaCameraExample/build.xml
@@ -23,6 +23,10 @@
     <property name="FLEXJS_HOME" location="../.."/>
     <property name="example" value="CordovaCameraExample" />
     
+    <!-- this project needs AIR 3.4 FP 11.4 -->
+    <property name="swf.version" value="17" />
+    <property name="playerglobal.version" value="11.4" />
+    
     <property file="${FLEXJS_HOME}/env.properties"/>
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
@@ -30,16 +34,42 @@
     <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
     <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
     <property name="GOOG_HOME" value="${env.GOOG_HOME}"/>
+    <property name="AIR_HOME" value="${env.AIR_HOME}"/>
+    
+    
+    <condition property="adl" value="adl.exe">
+        <os family="windows"/>
+    </condition>
+    
+    <condition property="adl" value="adl">
+        <os family="mac"/>
+    </condition>
     
+    <condition property="runtime" value="win">
+        <os family="windows"/>
+    </condition>
+    
+    <condition property="runtime" value="mac">
+        <os family="mac"/>
+    </condition>
+
     <include file="${basedir}/../build_example.xml" />
 
-    <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">
+    <target name="main" depends="clean,build_example.compileair,build_example.compilejsair" description="Clean build of ${example}">
     </target>
     
     <target name="clean">
+        <echo>playerglobal.version = ${playerglobal.version}</echo>
         <delete dir="${basedir}/bin" failonerror="false" />
         <delete dir="${basedir}/bin-debug" failonerror="false" />
         <delete dir="${basedir}/bin-release" failonerror="false" />
     </target>    
     
+    <target name="run">
+        <exec executable="${AIR_HOME}/bin/${adl}" dir="${basedir}/bin-debug" failonerror="true">
+            <arg value="-runtime" />
+            <arg value="${AIR_HOME}/runtimes/air/${runtime}" />
+            <arg value="${basedir}/bin-debug/${example}-app.xml" />
+        </exec>
+    </target>
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/599b6e05/examples/CordovaCameraExample/src/CordovaCameraExample.mxml
----------------------------------------------------------------------
diff --git a/examples/CordovaCameraExample/src/CordovaCameraExample.mxml b/examples/CordovaCameraExample/src/CordovaCameraExample.mxml
index c77e690..8d76281 100644
--- a/examples/CordovaCameraExample/src/CordovaCameraExample.mxml
+++ b/examples/CordovaCameraExample/src/CordovaCameraExample.mxml
@@ -30,4 +30,7 @@
 	<basic:initialView>
 		<local:MyInitialView />
 	</basic:initialView>
+	<basic:beads>
+		<basic:MixinManager />
+	</basic:beads>
 </basic:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/599b6e05/examples/CordovaCameraExample/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/CordovaCameraExample/src/MyInitialView.mxml b/examples/CordovaCameraExample/src/MyInitialView.mxml
index 6eeeeca..319ff54 100644
--- a/examples/CordovaCameraExample/src/MyInitialView.mxml
+++ b/examples/CordovaCameraExample/src/MyInitialView.mxml
@@ -60,7 +60,7 @@ limitations under the License.
 	<basic:TextButton text="From Photo Library" x="20" y="20" click="onFromPhotoLibrary()" />
 	<basic:TextButton text="Snap Picture" x="20" y="55" click="snapPicture()" />
 	
-	<basic:Label id="output" x="20" y="110" />
+	<basic:Label id="output" x="20" y="110" width="400"/>
 	
 	<basic:Image id="image" x="20" y="200" width="200" height="200" />
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/599b6e05/examples/build_example.xml
----------------------------------------------------------------------
diff --git a/examples/build_example.xml b/examples/build_example.xml
index d0a9705..caa6739 100644
--- a/examples/build_example.xml
+++ b/examples/build_example.xml
@@ -74,6 +74,54 @@
         </copy>
     </target>
     
+    <target name="compileair" description="Compiles ${example}">
+        <echo message="Compiling ${example}.swf"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        
+        <!-- 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 FlexJSUIClasses.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.
+         -->
+        <mxmlc fork="true"
+            file="${basedir}/src/${example}.mxml"
+            output="${basedir}/bin-debug/${example}.swf">
+            <jvmarg line="${mxmlc.jvm.args}"/>
+            <arg value="+flexlib=${basedir}/frameworks" />
+            <arg value="+configname=air" />
+            <arg value="-debug" />
+            <arg value="-target-player=${playerglobal.version}" />
+            <arg value="-swf-version=${swf.version}" />
+            <arg value="-compiler.mxml.children-as-data" />
+            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
+            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
+            <arg value="-compiler.binding-value-change-event-type=valueChange" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+        </mxmlc>
+        
+        <copy todir="${basedir}/bin-debug">
+            <fileset dir="${basedir}/src">
+                <include name="*.png" />
+            </fileset>
+        </copy>
+        <copy todir="${basedir}/bin-debug">
+            <fileset dir="${basedir}">
+                <include name="*-app.xml" />
+            </fileset>
+        </copy>
+    </target>
+    
     <target name="compileas" description="Compiles ${example}">
         <echo message="Compiling ${example}.swf"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
@@ -157,6 +205,45 @@
 		</fail>
     </target>
 
+    <target name="compilejsair" description="Cross-compiles ${example}">
+        <echo message="Compiling ${example}.js"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
+        <echo message="GOOG_HOME: ${GOOG_HOME}"/>
+        
+        <java jar="${FALCONJX_HOME}/lib/mxmlc.jar" resultProperty="errorCode"
+            fork="true">
+            <jvmarg line="${mxmlc.jvm.args}"/>
+            <jvmarg line="-Dflexlib=${FLEXJS_HOME}/frameworks}"/>
+            <arg value="+flexlib=${FLEXJS_HOME}/frameworks" />
+            <arg value="+configname=air" />
+            <arg value="-debug" />
+            <arg value="-compiler.mxml.children-as-data" />
+            <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
+            <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
+            <arg value="-compiler.binding-value-change-event-type=valueChange" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+            <arg value="-js-output-type=FLEXJS" />
+            <arg value="-closure-lib=${GOOG_HOME}" />
+            <arg value="-sdk-js-lib=${FLEXJS_HOME}/frameworks/js/FlexJS/src" />
+            <arg value="-sdk-js-lib=${FLEXJS_HOME}/frameworks/js/FlexJS/libs" />
+            <arg value="-external-js-lib=${FLEXJS_HOME}/frameworks/js/FlexJS/src/jquery_externals.js" />
+            <arg value="-external-js-lib=${FLEXJS_HOME}/frameworks/js/FlexJS/src/createjs_externals.js" />
+            <arg value="${basedir}/src/${example}.mxml" />
+        </java>
+        <fail>
+            <condition>
+                <not>
+                    <or>
+                        <equals arg1="${errorCode}" arg2="0" />
+                        <equals arg1="${errorCode}" arg2="2" />
+                    </or>
+                </not>
+            </condition>
+        </fail>
+    </target>
+
     <target name="compileasjs" description="Cross-compiles ${example}">
         <echo message="Compiling ${example}.js"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>