You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by yi...@apache.org on 2016/10/10 08:01:37 UTC
[2/2] git commit: [flex-asjs] [refs/heads/refactor-sprite] - Binary
image working on SVG.
Binary image working on SVG.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/f469e189
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/f469e189
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/f469e189
Branch: refs/heads/refactor-sprite
Commit: f469e1896b4c5aa686a968bcdca9fac510bf81ba
Parents: c15d36c
Author: yishayw <yi...@hotmail.com>
Authored: Mon Oct 10 11:01:27 2016 +0300
Committer: yishayw <yi...@hotmail.com>
Committed: Mon Oct 10 11:01:27 2016 +0300
----------------------------------------------------------------------
.../flex/org/apache/flex/core/IBinaryImage.as | 6 +++-
.../main/flex/org/apache/flex/core/IImage.as | 2 ++
.../flex/org/apache/flex/core/IImageView.as | 1 -
.../main/flex/org/apache/flex/core/ImageBase.as | 7 ++++
.../flex/org/apache/flex/core/ImageViewBase.as | 11 +++++-
.../projects/Graphics/.actionScriptProperties | 2 --
.../Graphics/src/main/flex/GraphicsClasses.as | 2 +-
.../flex/org/apache/flex/svg/BinaryImage.as | 6 ++++
.../src/main/flex/org/apache/flex/svg/Image.as | 11 ++++++
.../projects/HTML/src/main/flex/HTMLClasses.as | 6 ++--
.../flex/org/apache/flex/html/BinaryImage.as | 5 +++
.../src/main/flex/org/apache/flex/html/Image.as | 9 ++++-
.../apache/flex/html/beads/BinaryImageLoader.as | 37 +++++++-------------
13 files changed, 70 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
index a93f9db..45640be 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IBinaryImage.as
@@ -1,4 +1,4 @@
-////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
@@ -42,5 +42,9 @@ package org.apache.flex.core
*/
function get binary():BinaryData;
function set binary(value:BinaryData):void;
+
+ COMPILE::JS
+ function applyBinaryDataAsString(binaryDataAsString:String):void;
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
index 19f8bbc..9f93239 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImage.as
@@ -41,5 +41,7 @@ package org.apache.flex.core
*/
function get url():String;
function set url(value:String):void;
+ COMPILE::JS
+ function get imageElement():Element;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
index 5993faf..bf0c123 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IImageView.as
@@ -48,7 +48,6 @@ package org.apache.flex.core
COMPILE::SWF
function get loader():Loader
- COMPILE::SWF
function setupLoader():void
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
index 5409a7b..674c23d 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageBase.as
@@ -66,6 +66,13 @@ package org.apache.flex.core
{
(model as IImageModel).url = value;
}
+
+ COMPILE::JS
+ public function get imageElement():Element
+ {
+ return null;
+ // override this
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
index 8973abe..2bf4570 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ImageViewBase.as
@@ -131,11 +131,20 @@ package org.apache.flex.core
});
}
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.IImage
+ */
+ COMPILE::JS
+ protected function get imageElement():Element
+ {
+ return (_strand as IImage).imageElement;
+ }
+
COMPILE::JS
public function setupLoader():void
{
var host:IUIBase = _strand as IUIBase;
- (host.element as HTMLImageElement).addEventListener('load',
+ imageElement.addEventListener('load',
loadHandler, false);
host.addEventListener('sizeChanged',
sizeChangedHandler);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/.actionScriptProperties
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/.actionScriptProperties b/frameworks/projects/Graphics/.actionScriptProperties
index 5ac78a8..49ec6c7 100644
--- a/frameworks/projects/Graphics/.actionScriptProperties
+++ b/frameworks/projects/Graphics/.actionScriptProperties
@@ -5,10 +5,8 @@
<libraryPath defaultLinkType="0">
<libraryPathEntry kind="4" path="">
<excludedEntries>
- <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/Core.swc" useDefaultLinkType="false"/>
</excludedEntries>
</libraryPathEntry>
- <libraryPathEntry kind="3" linkType="1" path="/Core/target/Core.swc" useDefaultLinkType="false"/>
</libraryPath>
<sourceAttachmentPath/>
</compiler>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as b/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
index b93e577..83ae71f 100644
--- a/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
+++ b/frameworks/projects/Graphics/src/main/flex/GraphicsClasses.as
@@ -35,6 +35,7 @@ internal class GraphicsClasses
import org.apache.flex.svg.Circle; Circle;
import org.apache.flex.svg.Image; Image;
import org.apache.flex.svg.BinaryImage; BinaryImage;
+ import org.apache.flex.svg.beads.ImageView; ImageView;
import org.apache.flex.svg.Path; Path;
import org.apache.flex.graphics.SolidColor; SolidColor;
import org.apache.flex.graphics.SolidColorStroke; SolidColorStroke;
@@ -50,7 +51,6 @@ internal class GraphicsClasses
import org.apache.flex.graphics.PathBuilder; PathBuilder;
import org.apache.flex.graphics.QuadraticCurve; QuadraticCurve;
import org.apache.flex.svg.DOMWrapper; DOMWrapper;
- import org.apache.flex.svg.beads.ImageView; ImageView;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
index c03793c..6413c7c 100644
--- a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
+++ b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/BinaryImage.as
@@ -83,5 +83,11 @@ package org.apache.flex.svg
(model as IBinaryImageModel).binary = value;
}
+ COMPILE::JS
+ public function applyBinaryDataAsString(binaryDataAsString:String):void
+ {
+ (_image as SVGImageElement).setAttributeNS('http://www.w3.org/1999/xlink','href', binaryDataAsString);
+ }
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
index 967e4f9..e84fd94 100644
--- a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
+++ b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/Image.as
@@ -55,15 +55,26 @@ package org.apache.flex.svg
COMPILE::JS
protected var _image:WrappedHTMLElement;
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
COMPILE::JS
protected function addImageElement():void
{
if (_image == null) {
_image = document.createElementNS('http://www.w3.org/2000/svg', 'image') as WrappedHTMLElement;
+ _image.setAttribute("width", "100%");
+ _image.setAttribute("height", "100%");
_image.flexjs_wrapper = this;
element.appendChild(_image);
}
}
+
+ COMPILE::JS
+ override public function get imageElement():Element
+ {
+ return _image;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
index d4cb4d2..729e0e1 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -54,10 +54,10 @@ internal class HTMLClasses
import org.apache.flex.html.beads.DropDownListView; DropDownListView;
import org.apache.flex.html.beads.CloseButtonView; CloseButtonView;
import org.apache.flex.html.beads.ImageAndTextButtonView; ImageAndTextButtonView;
- import org.apache.flex.html.beads.ImageView; ImageView;
- import org.apache.flex.html.beads.BinaryImageLoader; BinaryImageLoader;
- import org.apache.flex.html.beads.models.BinaryImageModel; BinaryImageModel;
}
+ import org.apache.flex.html.beads.ImageView; ImageView;
+ import org.apache.flex.html.beads.BinaryImageLoader; BinaryImageLoader;
+ import org.apache.flex.html.beads.models.BinaryImageModel; BinaryImageModel;
import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
import org.apache.flex.html.beads.ListView; ListView;
COMPILE::SWF
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
index af88de7..899ac3f 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/BinaryImage.as
@@ -84,6 +84,11 @@ package org.apache.flex.html
(model as IBinaryImageModel).binary = value;
}
+ COMPILE::JS
+ public function applyBinaryDataAsString(binaryDataAsString:String):void
+ {
+ (element as HTMLImageElement).src = binaryDataAsString;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
index 20bc6af..0b83b62 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as
@@ -55,7 +55,14 @@ package org.apache.flex.html
element.flexjs_wrapper = this;
return element;
- }
+ }
+
+ COMPILE::JS
+ override public function get imageElement():Element
+ {
+ return element;
+ }
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f469e189/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
index f912b09..a4adf24 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/BinaryImageLoader.as
@@ -18,32 +18,19 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.html.beads
{
- COMPILE::SWF
- {
- import flash.display.Bitmap;
- import flash.display.Loader;
- import flash.display.LoaderInfo;
- import flash.events.IOErrorEvent;
- import flash.net.URLRequest;
- }
+ import org.apache.flex.core.IBinaryImageLoader;
+ import org.apache.flex.core.IBinaryImageModel;
+ import org.apache.flex.core.IImageView;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.Event;
+
COMPILE::JS
{
import goog.events;
import org.apache.flex.utils.URLUtils;
+ import org.apache.flex.core.IBinaryImage;
}
- import org.apache.flex.core.BeadViewBase;
- import org.apache.flex.core.IBeadView;
- import org.apache.flex.core.IBinaryImageModel;
- import org.apache.flex.core.IStrand;
- import org.apache.flex.core.IUIBase;
- import org.apache.flex.core.UIBase;
- import org.apache.flex.events.Event;
- import org.apache.flex.events.IEventDispatcher;
- import org.apache.flex.utils.BinaryData;
- import org.apache.flex.core.IBead;
- import org.apache.flex.core.IImageView;
- import org.apache.flex.core.IBinaryImageLoader;
/**
* The ImageView class creates the visual elements of the org.apache.flex.html.Image component.
@@ -91,16 +78,16 @@ package org.apache.flex.html.beads
/**
* @private
- * @flexjsignorecoercion HTMLImageELement
- * @flexjsignorecoercion BinaryImageModel
+ * @flexjsignorecoercion Object
+ * @flexjsignorecoercion UIBase
*/
private function handleBinaryChange(event:Event):void
{
var m:IBinaryImageModel = model;
+ var imageView:IImageView = _strand.getBeadByType(IImageView) as IImageView;
COMPILE::SWF
{
if (m.binary) {
- var imageView:IImageView = _strand.getBeadByType(IImageView) as IImageView;
imageView.setupLoader();
imageView.loader.loadBytes(m.binary.array);
}
@@ -108,14 +95,14 @@ package org.apache.flex.html.beads
COMPILE::JS
{
if (m.binary) {
- setupLoader();
+ imageView.setupLoader();
if(_objectURL)
URLUtils.revokeObjectURL(_objectURL);
var blob:Blob = new Blob([m.binary.array]);
// I don't think we need to specify the type.
// var blob = new Blob([response], {type: "image/png"});
_objectURL = URLUtils.createObjectURL(blob);
- (host.element as HTMLImageElement).src = _objectURL;
+ (_strand as IBinaryImage).applyBinaryDataAsString(_objectURL);
}
}
}