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 2016/09/07 22:33:42 UTC
[07/50] git commit: [flex-asjs] [refs/heads/master] - Listen to
strand events instead of model events and avoid initialization order
problems.
Listen to strand events instead of model events and avoid initialization order problems.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/970f3e3a
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/970f3e3a
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/970f3e3a
Branch: refs/heads/master
Commit: 970f3e3af89fbbbc16972e73e22c80f7b58f4d6e
Parents: fa40021
Author: yishayw <yi...@hotmail.com>
Authored: Thu Jul 28 15:49:22 2016 +0300
Committer: yishayw <yi...@hotmail.com>
Committed: Thu Jul 28 15:49:22 2016 +0300
----------------------------------------------------------------------
.../flex/org/apache/flex/core/ITransformHost.as | 3 ++-
.../flex/org/apache/flex/core/TransformModel.as | 25 +++++++++++++++--
.../flex/org/apache/flex/svg/TransformBead.as | 28 ++++++++------------
3 files changed, 36 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/970f3e3a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ITransformHost.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ITransformHost.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ITransformHost.as
index 3553cc3..84192b1 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ITransformHost.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ITransformHost.as
@@ -18,6 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.core
{
+ import org.apache.flex.events.IEventDispatcher;
@@ -30,7 +31,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public interface ITransformHost extends IStrand
+ public interface ITransformHost extends IStrand, IEventDispatcher
{
/**
* Each ITransformHost has an element that is actually added to
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/970f3e3a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/TransformModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/TransformModel.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/TransformModel.as
index 6f0df64..ca5ce11 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/TransformModel.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/TransformModel.as
@@ -6,7 +6,11 @@ package org.apache.flex.core
public class TransformModel extends EventDispatcher implements ITransformModel
{
+
+ public static const CHANGE:String = "transferModelChange";
+
private var _matrix:Matrix;
+ private var _strand:IStrand;
public function TransformModel()
{
@@ -17,13 +21,30 @@ package org.apache.flex.core
return _matrix;
}
+ private function dispatchModelChangeEvent():void
+ {
+ host.dispatchEvent(new Event(CHANGE));
+ }
+
+ private function get host():ITransformHost
+ {
+ return _strand as ITransformHost;
+ }
+
public function set matrix(value:Matrix):void
{
_matrix = value;
- dispatchEvent(new Event(Event.CHANGE));
+ if (_strand)
+ {
+ dispatchModelChangeEvent();
+ }
}
- public function set strand(value:IStrand):void {}
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ dispatchModelChangeEvent();
+ }
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/970f3e3a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/TransformBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/TransformBead.as b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/TransformBead.as
index e852db5..5585b8a 100644
--- a/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/TransformBead.as
+++ b/frameworks/projects/Graphics/src/main/flex/org/apache/flex/svg/TransformBead.as
@@ -1,22 +1,21 @@
package org.apache.flex.svg
{
+ import org.apache.flex.core.IBeadTransform;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.ITransformHost;
import org.apache.flex.core.ITransformModel;
+ import org.apache.flex.core.TransformModel;
import org.apache.flex.events.Event;
import org.apache.flex.geom.Matrix;
- import org.apache.flex.core.IBeadTransform;
- import org.apache.flex.core.ITransformHost;
COMPILE::SWF {
import flash.display.Sprite;
import flash.geom.Matrix;
}
-
public class TransformBead implements IBeadTransform
{
private var _strand:IStrand;
- private var transformModel:ITransformModel;
public function TransformBead()
{
@@ -32,25 +31,20 @@ package org.apache.flex.svg
*/
public function set strand(value:IStrand):void
{
- if (!(value is GraphicContainer))
- {
- throw new Error("This bead only works with svg GraphicContainers");
- return;
- }
_strand = value;
- transformModel = value.getBeadByType(ITransformModel) as ITransformModel;
- if (!transformModel)
- {
- throw new Error("An ITransformModel needs to be defined.");
- return;
- }
- transformModel.addEventListener(Event.CHANGE, changeHandler);
- if (transformModel.matrix)
+ host.addEventListener(TransformModel.CHANGE, changeHandler);
+ var model:ITransformModel = transformModel;
+ if (model && model.matrix)
{
transform();
}
}
+ public function get transformModel():ITransformModel
+ {
+ return host.getBeadByType(ITransformModel) as ITransformModel;
+ }
+
COMPILE::SWF
public function transform():void
{