You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2020/09/25 16:33:05 UTC
[royale-asjs] 08/11: Got new emulation stubs to compile
This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit a57545fed9e60193d122c8141635749fceb952b7
Author: Yishay Weiss <yi...@yell.com>
AuthorDate: Fri Sep 25 13:24:31 2020 +0100
Got new emulation stubs to compile
---
.../MXRoyale/src/main/royale/MXRoyaleClasses.as | 12 +
.../mx/controls/scrollClasses/ScrollThumb.as | 124 ++++----
.../main/royale/mx/effects/EffectTargetFilter.as | 331 +++++++++++++++++++++
.../main/royale/mx/effects/IEffectTargetHost.as | 122 ++++++++
.../mx/effects/effectClasses/PropertyChanges.as | 151 ++++++++++
.../MXRoyale/src/main/royale/mx/events/RSLEvent.as | 3 +-
6 files changed, 679 insertions(+), 64 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 16c1f13..57be249 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -282,6 +282,18 @@ internal class MXRoyaleClasses
import mx.controls.beads.models.ComboBoxModel; ComboBoxModel;
import mx.controls.beads.models.CascadingMenuModel; CascadingMenuModel;
+ import mx.collections.errors.ItemPendingError; ItemPendingError;
+ import mx.controls.scrollClasses.ScrollThumb; ScrollThumb;
+ import mx.effects.EffectTargetFilter; EffectTargetFilter;
+ import mx.effects.effectClasses.PropertyChanges; PropertyChanges;
+ import mx.effects.IEffect; IEffect;
+ import mx.effects.IEffectTargetHost; IEffectTargetHost;
+ import mx.events.RSLEvent; RSLEvent;
+ import mx.skins.halo.DataGridHeaderSeparator; DataGridHeaderSeparator;
+ import mx.filters.BaseDimensionFilter; BaseDimensionFilter;
+ import mx.filters.BaseFilter; BaseFilter;
+ import mx.filters.IBitmapFilter; IBitmapFilter;
+
import mx.controls.beads.models.SingleSelectionICollectionViewModel; SingleSelectionICollectionViewModel;
import mx.controls.beads.models.DataGridColumnICollectionViewModel; DataGridColumnICollectionViewModel;
import mx.controls.beads.models.DataGridICollectionViewModel; DataGridICollectionViewModel;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/scrollClasses/ScrollThumb.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/scrollClasses/ScrollThumb.as
index 31b5f89..65bcd10 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/scrollClasses/ScrollThumb.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/scrollClasses/ScrollThumb.as
@@ -65,7 +65,7 @@ public class ScrollThumb extends Button
explicitMinHeight = 10;
- stickyHighlighting = true;
+ //stickyHighlighting = true;
}
//--------------------------------------------------------------------------
@@ -109,12 +109,12 @@ public class ScrollThumb extends Button
/**
* @private
*/
- override mx_internal function buttonReleased():void
- {
- super.buttonReleased();
-
- stopDragThumb();
- }
+ //override mx_internal function buttonReleased():void
+ //{
+ //super.buttonReleased();
+//
+ //stopDragThumb();
+ //}
//--------------------------------------------------------------------------
//
@@ -143,18 +143,18 @@ public class ScrollThumb extends Button
*/
private function stopDragThumb():void
{
- var scrollBar:ScrollBar = ScrollBar(parent);
-
- scrollBar.isScrolling = false;
-
- scrollBar.dispatchScrollEvent(scrollBar.oldPosition,
- ScrollEventDetail.THUMB_POSITION);
-
- scrollBar.oldPosition = NaN;
-
- systemManager.getSandboxRoot().removeEventListener(
- MouseEvent.MOUSE_MOVE, mouseMoveHandler, true);
-
+ //var scrollBar:ScrollBar = ScrollBar(parent);
+ //
+ //scrollBar.isScrolling = false;
+ //
+ //scrollBar.dispatchScrollEvent(scrollBar.oldPosition,
+ //ScrollEventDetail.THUMB_POSITION);
+ //
+ //scrollBar.oldPosition = NaN;
+ //
+ //systemManager.getSandboxRoot().removeEventListener(
+ //MouseEvent.MOUSE_MOVE, mouseMoveHandler, true);
+//
}
//--------------------------------------------------------------------------
@@ -167,19 +167,19 @@ public class ScrollThumb extends Button
* @private
* User pressed on the thumb, so start tracking in case they drag it.
*/
- override protected function mouseDownHandler(event:MouseEvent):void
- {
- super.mouseDownHandler(event);
-
- var scrollBar:ScrollBar = ScrollBar(parent);
- scrollBar.oldPosition = scrollBar.scrollPosition;
-
- lastY = event.localY;
-
- systemManager.getSandboxRoot().addEventListener(
- MouseEvent.MOUSE_MOVE, mouseMoveHandler, true);
-
- }
+ //override protected function mouseDownHandler(event:MouseEvent):void
+ //{
+ //super.mouseDownHandler(event);
+//
+ //var scrollBar:ScrollBar = ScrollBar(parent);
+ //scrollBar.oldPosition = scrollBar.scrollPosition;
+ //
+ //lastY = event.localY;
+ //
+ //systemManager.getSandboxRoot().addEventListener(
+ //MouseEvent.MOUSE_MOVE, mouseMoveHandler, true);
+//
+ //}
//--------------------------------------------------------------------------
//
@@ -193,36 +193,36 @@ public class ScrollThumb extends Button
*/
private function mouseMoveHandler(event:MouseEvent):void
{
- if (ymin == ymax)
- return;
-
- var pt:Point = new Point(event.stageX, event.stageY);
- pt = globalToLocal(pt);
-
- var scrollMove:Number = pt.y - lastY;
- scrollMove += y;
-
- if (scrollMove < ymin)
- scrollMove = ymin;
- else if (scrollMove > ymax)
- scrollMove = ymax;
-
- var scrollBar:ScrollBar = ScrollBar(parent);
-
- scrollBar.isScrolling = true;
-
- $y = scrollMove;
-
- // In an ideal world, this would probably dispatch an event,
- // however this object is rather hardwired into a scroll bar
- // so we'll just have it tell the scroll bar to change its position.
- var oldPosition:Number = scrollBar.scrollPosition;
- var pos:Number = Math.round(
- (datamax - datamin) * (y - ymin) / (ymax - ymin)) + datamin;
- scrollBar.scrollPosition = pos;
- scrollBar.dispatchScrollEvent(oldPosition,
- ScrollEventDetail.THUMB_TRACK);
- event.updateAfterEvent();
+ //if (ymin == ymax)
+ //return;
+//
+ //var pt:Point = new Point(event.stageX, event.stageY);
+ //pt = globalToLocal(pt);
+ //
+ //var scrollMove:Number = pt.y - lastY;
+ //scrollMove += y;
+ //
+ //if (scrollMove < ymin)
+ //scrollMove = ymin;
+ //else if (scrollMove > ymax)
+ //scrollMove = ymax;
+//
+ //var scrollBar:ScrollBar = ScrollBar(parent);
+ //
+ //scrollBar.isScrolling = true;
+ //
+ //$y = scrollMove;
+//
+ //// In an ideal world, this would probably dispatch an event,
+ //// however this object is rather hardwired into a scroll bar
+ //// so we'll just have it tell the scroll bar to change its position.
+ //var oldPosition:Number = scrollBar.scrollPosition;
+ //var pos:Number = Math.round(
+ //(datamax - datamin) * (y - ymin) / (ymax - ymin)) + datamin;
+ //scrollBar.scrollPosition = pos;
+ //scrollBar.dispatchScrollEvent(oldPosition,
+ //ScrollEventDetail.THUMB_TRACK);
+ //event.updateAfterEvent();
}
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/EffectTargetFilter.as b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/EffectTargetFilter.as
new file mode 100644
index 0000000..2fc6198
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/EffectTargetFilter.as
@@ -0,0 +1,331 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.effects
+{
+
+import mx.effects.effectClasses.PropertyChanges;
+
+/**
+ * The EffectTargetFilter class defines a custom filter that is executed
+ * by each transition effect on each target of the effect.
+ *
+ * <p>The EffectTargetFilter class defines a
+ * <code>defaultFilterFunction()</code> method that uses the
+ * <code>filterProperties</code> and <code>filterStyles</code> properties
+ * to determine whether to play the effect on each effect target.</p>
+ *
+ * <p>You can also define a custom filter function
+ * to implement your own filtering logic.
+ * To do so, define your filter function, and then specify that function
+ * to an EffectTargetFilter object using the <code>filterFunction</code>
+ * property.</p>
+ *
+ * <p>To configure an effect to use a custom filter, you pass an
+ * EffectTargetFilter object to the <code>Effect.customFilter</code> property
+ * of the effect.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class EffectTargetFilter
+{
+ //include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function EffectTargetFilter()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // filterFunction
+ //----------------------------------
+
+ /**
+ * A function that defines custom filter logic.
+ * Flex calls this method on every target of the effect.
+ * If the function returns <code>true</code>,
+ * the effect plays on the target;
+ * if it returns <code>false</code>, the target is skipped by the effect.
+ * A custom filter function gives you greater control over filtering
+ * than the <code>Effect.filter</code> property.
+ *
+ * <p>The filter function has the following signature:</p>
+ *
+ * <pre>
+ * filterFunc(propChanges:Array, instanceTarget:Object):Boolean
+ * {
+ * // Return true to play the effect on instanceTarget,
+ * // or false to not play the effect.
+ * }
+ * </pre>
+ *
+ * <p>where:</p>
+ *
+ * <p><code>propChanges</code> - An Array of PropertyChanges objects,
+ * one object per target component of the effect.
+ * If a property of a target is not modified by the transition,
+ * it is not included in this Array.</p>
+ *
+ * <p><code>instanceTarget</code> - The specific target component
+ * of the effect that you want to filter.
+ * Within the custom filter function, you first search the
+ * <code>propChanges</code> Array for the PropertyChanges object
+ * that matches the <code>instanceTarget</code> argument
+ * by comparing the <code>instanceTarget</code> argument
+ * to the <code>propChanges.target</code> property.</p>
+ *
+ * @see mx.effects.effectClasses.PropertyChanges
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var filterFunction:Function = defaultFilterFunctionEx;
+
+ //----------------------------------
+ // filterProperties
+ //----------------------------------
+
+ /**
+ * An Array of Strings specifying component properties.
+ * If any of the properties in the Array changed on the target component,
+ * play the effect on the target.
+ *
+ * <p>If you define a custom filter function, you can examine the
+ * <code>filterProperties</code> property from within your function.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var filterProperties:Array = [];
+
+ //----------------------------------
+ // filterStyles
+ //----------------------------------
+
+ /**
+ * An Array of Strings specifying style properties.
+ * If any of the style properties in the Array changed on the target component,
+ * play the effect on the target.
+ *
+ * <p>If you define a custom filter function, you can examine the
+ * <code>filterStyles</code> property from within your function.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var filterStyles:Array = [];
+
+ //----------------------------------
+ // requiredSemantics
+ //----------------------------------
+
+ /**
+ * A collection of properties and associated values which must be associated
+ * with a target for the effect to be played.
+ *
+ * <p>When working with data effects, you can use this property to filter effects.
+ * If you want to play a data effect on all targets of a list control
+ * that are not added by the effect, meaning targets that is removed, replaced, moved,
+ * or affected in any other way, you can write the effect definition as shown below: </p>
+ *
+ * <pre>
+ * <mx:Blur>
+ * <mx:customFilter>
+ * <mx:EffectTargetFilter requiredSemantics="{{'added':false}}"/>
+ * </mx:customFilter>
+ * </mx:Blur> </pre>
+ *
+ * <p>To play a data effect on all targets that are not added or not removed by the effect,
+ * you can write the effect definition as shown below:</p>
+ *
+ * <pre>
+ * <mx:Blur>
+ * <mx:customFilter>
+ * <mx:EffectTargetFilter requiredSemantics="{{'added':false}, {'removed':false}}"/>
+ * </mx:customFilter>
+ * </mx:Blur></pre>
+ *
+ * <p>The allowed list of properties that you can specify includes <code>added</code>,
+ * <code>removed</code>, <code>replaced</code>, and <code>replacement</code>.
+ * The allowed values for the properties are <code>true</code> and <code>false</code>.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var requiredSemantics:Object = null;
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Determines whether a target should be filtered, returning true if it should be
+ * included in an effect.
+ *
+ * The determination is made by calling filterFunction and semanticFilterFunction,
+ * returning true if and only if both functions return true. The default functions
+ * with the default values will always return true.
+ *
+ * Typically, an EffectTargetFilter will use one type of filter or the other, but
+ * not both.
+ *
+ * @param propChanges An Array of PropertyChanges objects. The target property of
+ * each PropertyChanges object is equal to the effect's target. If a property of
+ * a target is not modified by a transition, the corresponding PropertyChanges
+ * object is not included in this array.
+ *
+ * @param semanticsProvider The IEffectTargetHost used to evaluate the properties
+ * specified in requiredSemantics for the target, normally the effectTargetHost of
+ * the effect. For item change effects, when the targets of the effect are item
+ * renderers, this will be the List or TileList containing the item renderers.
+ *
+ * @param target The target of the EffectInstance that calls this function. If an
+ * effect has multiple targets, this function is called once per target.
+ *
+ * @return Returna <code>true</code>, if the target should be included in the effect;
+ * otherwise returns <code>false</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function filterInstance(propChanges:Array, semanticsProvider:IEffectTargetHost,
+ target:Object):Boolean
+ {
+ if (filterFunction.length == 2)
+ return filterFunction(propChanges, target);
+ else
+ return filterFunction(propChanges, semanticsProvider, target);
+ }
+
+ /**
+ * @private
+ */
+ protected function defaultFilterFunctionEx(propChanges:Array, semanticsProvider:IEffectTargetHost,
+ target:Object):Boolean
+ {
+ if (requiredSemantics)
+ {
+ for (var prop:String in requiredSemantics)
+ {
+ // seems dumb to check this every time
+ // if necessary, we could do something with setters and getters
+ if (!semanticsProvider)
+ return false;
+ if (semanticsProvider.getRendererSemanticValue(target,prop) != requiredSemantics[prop])
+ return false;
+ }
+
+ // not clear this is the right thing to do here
+ // the problem is that defaultFilterFunction returns false in
+ // some cases where we might expect it to return true
+ return true;
+ }
+ // if semantic filtering has passed, do property change filtering
+ return defaultFilterFunction(propChanges, target);
+ }
+
+ /**
+ * The default filter function for the EffectTargetFilter class.
+ * If the <code>instanceTarget</code> has different start and end values
+ * for any of the values specified by the <code>filterProperties</code>
+ * or <code>filterStyles</code> properties, play the effect on the target.
+ *
+ * @param propChanges An Array of PropertyChanges objects.
+ * The <code>target</code> property of each PropertyChanges object
+ * is equal to the effect's target.
+ * If a property of a target is not modified by a transition, the
+ * corresponding PropertyChanges
+ * object is not included in this array.
+ *
+ * @param instanceTarget The target of the EffectInstance
+ * that calls this function.
+ * If an effect has multiple targets,
+ * this function is called once per target.
+ *
+ * @return Returns <code>true</code> to allow the effect instance to play.
+ *
+ * @see mx.effects.effectClasses.PropertyChanges
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ protected function defaultFilterFunction(propChanges:Array,
+ instanceTarget:Object):Boolean
+ {
+ var n:int = propChanges.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ var props:PropertyChanges = propChanges[i];
+ if (props.target == instanceTarget)
+ {
+ var triggers:Array = filterProperties.concat(filterStyles);
+ var m:int = triggers.length;
+ for (var j:int = 0; j < m; j++)
+ {
+ if (props.start[triggers[j]] !== undefined &&
+ props.end[triggers[j]] != props.start[triggers[j]])
+ {
+ return true;
+ }
+ }
+ }
+ }
+
+ return false;
+ }
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/IEffectTargetHost.as b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/IEffectTargetHost.as
new file mode 100644
index 0000000..85b3d96
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/IEffectTargetHost.as
@@ -0,0 +1,122 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.effects
+{
+
+/**
+ * The IEffectTargetHost interface defines the interface that lets you access the
+ * target list-based control of a data effect.
+ * All list-based controls implement this interface.
+ * This interface enables an instance of an effect class to communicate with the
+ * list-based control on which the effect is playing.
+ * This interface is also used for determining whether to play an effect based on if a data item is
+ * added, removed, or replaced in the target control.
+ *
+ * @see mx.controls.listClasses.ListBase
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public interface IEffectTargetHost
+{
+
+ /**
+ * Called by an <code>UnconstrainItemAction</code> effect
+ * as part of a data change effect if the item renderers corresponding
+ * to certain data items need to move outside the normal positions
+ * of item renderers in the control.
+ * The control does not attempt to position the item render for the
+ * duration of the effect.
+ *
+ * @param item The item renderer that is a target of the effect.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function unconstrainRenderer(item:Object):void;
+
+ /**
+ * Removes an item renderer if a data change effect is running.
+ * The item renderer must correspond to data that has already
+ * been removed from the data provider collection.
+ *
+ * This function will be called by a <code>RemoveItemAction</code>
+ * effect as part of a data change effect to specify the point
+ * at which a data item ceases to displayed by the control using
+ * an item renderer.
+ *
+ * @param item The item renderer to remove from the control's layout.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function removeDataEffectItem(target:Object):void;
+
+ /**
+ * Adds an item renderer if a data change effect is running.
+ * The item renderer should correspond to a recently added
+ * data item in the data provider's collection that isn't
+ * yet being displayed.
+ *
+ * <p>This function will be called by an <code>AddItemAction</code>
+ * effect as part of a data change effect to specify the point
+ * at which a data item added to a collection begins to be displayed
+ * by the control using an item renderer.</p>
+ *
+ * @param item The item renderer to add to the control's layout.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function addDataEffectItem(target:Object):void;
+
+ /**
+ * Returns <code>true</code> or <code>false</code>
+ * to indicates whether the effect should play on the target.
+ * The EffectTargetFilter class calls this method when you set
+ * the <code>filter</code> property on a data effect.
+ * For example, you set <code>filter</code> property
+ * to <code>addItem</code> or <code>removeItem</code>.
+ *
+ * @param target An item renderer
+ *
+ * @param semanticProperty The semantic property of the renderer
+ * whose value will be returned.
+ *
+ * @return <code>true</code> or <code>false</code>
+ * to indicates whether the effect should play on the target.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function getRendererSemanticValue(target:Object,semanticProperty:String):Object;
+
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/effectClasses/PropertyChanges.as b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/effectClasses/PropertyChanges.as
new file mode 100644
index 0000000..1db7c3d
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/effectClasses/PropertyChanges.as
@@ -0,0 +1,151 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.effects.effectClasses
+{
+
+import mx.core.IUIComponent;
+
+/**
+ * The PropertyChanges class defines the start and end values
+ * for a set of properties of a target component of a transition.
+ * The <code>start</code> and <code>end</code> fields
+ * of the PropertyChanges class contain the same set of properties,
+ * but with different values.
+ *
+ * <p>Target properties that have the same start and end values
+ * are not included in the <code>start</code> and <code>end</code> fields.</p>
+ *
+ * @see mx.states.Transition
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class PropertyChanges
+{
+ //include "../../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * The PropertyChanges constructor.
+ *
+ * @param target Object that is a target of an effect.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function PropertyChanges(target:Object)
+ {
+ super();
+
+ this.target = target;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // end
+ //----------------------------------
+
+ /**
+ * An Object containing the ending properties of the <code>target</code>
+ * component modified by the change in view state.
+ *
+ * <p>For example, for a <code>target</code> component that is both
+ * moved and resized by a change to the view state, <code>end</code>
+ * contains the ending position and size of the component,
+ * as the following example shows:
+ * <pre>{ x: 100, y: 100, width: 200, height: 200 }</pre></p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var end:Object = {};
+
+ //----------------------------------
+ // start
+ //----------------------------------
+
+ /**
+ * An Object containing the starting properties of the <code>target</code>
+ * component modified by the change in view state.
+ *
+ * <p>For example, for a <code>target</code> component that is both
+ * moved and resized by a change to the view state, <code>start</code>
+ * contains the starting position and size of the component,
+ * as the following example shows:
+ * <pre>{ x: 0, y: 0, width: 100, height: 100}</pre></p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var start:Object = {};
+
+ //----------------------------------
+ // target
+ //----------------------------------
+
+ /**
+ * A target component of a transition.
+ * The <code>start</code> and <code>end</code> fields
+ * of the PropertyChanges object define how the target component
+ * is modified by the change to the view state.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var target:Object;
+
+ // TODO (chaase): This flag is currently used by the transform-related
+ // effects. We should investigate whether we really need it, or can get
+ // by without it
+ /**
+ * This flag controls whether values that are the same in the
+ * start and end states are stripped from those objects.
+ *
+ * @default true
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var stripUnchangedValues:Boolean = true;
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/RSLEvent.as b/frameworks/projects/MXRoyale/src/main/royale/mx/events/RSLEvent.as
index 3f0d9d9..5806236 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/RSLEvent.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/events/RSLEvent.as
@@ -22,7 +22,6 @@ package mx.events
//import flash.display.LoaderInfo;
import org.apache.royale.events.Event;
-import org.apache.royale.events.ProgressEvent;
import org.apache.royale.net.URLRequest;
/**
@@ -352,7 +351,7 @@ public class RSLEvent extends ProgressEvent
/**
* @private
*/
- override public function clone():Event
+ public function clone():Event
{
return new RSLEvent(type, bubbles, cancelable,
bytesLoaded, bytesTotal, rslIndex,