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


The following commit(s) were added to refs/heads/develop by this push:
     new 238cd79  Forgot to add this to repo
238cd79 is described below

commit 238cd79cf99a5b645d4bef7a2a126322af0c3e93
Author: Yishay Weiss <[email protected]>
AuthorDate: Sun Oct 18 10:35:21 2020 +0100

    Forgot to add this to repo
---
 .../effectClasses/AnimatePropertyInstance.as       | 246 +++++++++++++++++++++
 1 file changed, 246 insertions(+)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/effectClasses/AnimatePropertyInstance.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/effectClasses/AnimatePropertyInstance.as
new file mode 100644
index 0000000..0f55053
--- /dev/null
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/effectClasses/AnimatePropertyInstance.as
@@ -0,0 +1,246 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.mx_internal;
+import mx.effects.Tween;
+
+use namespace mx_internal;
+
+/**
+ *  The AnimatePropertyInstance class implements the instance class
+ *  for the AnimateProperty effect.
+ *  Flex creates an instance of this class when it plays an AnimateProperty
+ *  effect; you do not create one yourself.
+ *
+ *  <p>Every effect class that is a subclass of the TweenEffect class 
+ *  supports the following events:</p>
+ *  
+ *  <ul>
+ *    <li><code>tweenEnd</code>: Dispatched when the tween effect ends. </li>
+ *  
+ *    <li><code>tweenUpdate</code>: Dispatched every time a TweenEffect 
+ *      class calculates a new value.</li> 
+ *  </ul>
+ *  
+ *  <p>The event object passed to the event listener for these events is of 
type TweenEvent. 
+ *  The TweenEvent class defines the property <code>value</code>, which 
contains 
+ *  the tween value calculated by the effect. 
+ *  For the AnimateProperty effect, 
+ *  the <code>TweenEvent.value</code> property contains a Number between the 
values of 
+ *  the <code>AnimateProperty.fromValue</code> and 
+ *  <code>AnimateProperty.toValue</code> properties, for the target 
+ *  property specified by <code>AnimateProperty.property</code>.</p>
+ *
+ *  @see mx.effects.AnimateProperty
+ *  @see mx.events.TweenEvent
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */  
+public class AnimatePropertyInstance extends TweenEffectInstance
+{
+    //include "../../core/Version.as";
+
+       
//--------------------------------------------------------------------------
+       //
+       //  Constructor
+       //
+       
//--------------------------------------------------------------------------
+
+       /**
+        *  Constructor.
+        *
+        *  @param target The Object to animate with this effect.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
+        */
+       public function AnimatePropertyInstance(target:Object)
+       {
+               super(target);
+       }
+       
+       
//--------------------------------------------------------------------------
+       //
+       //  Properties
+       //
+       
//--------------------------------------------------------------------------
+
+       //----------------------------------
+       //  toValue
+       //----------------------------------
+
+       /**
+        *  The ending value for the effect.
+        *  The default value is the target's current property value.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
+        */
+       public var toValue:Number;
+       
+       //----------------------------------
+       //  isStyle
+       //----------------------------------
+
+       /**
+        *  If <code>true</code>, the property attribute is a style and you
+        *  set it by using the <code>setStyle()</code> method. 
+        *  
+        *  @default false
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
+        */
+        public var isStyle:Boolean = false;
+               
+       //----------------------------------
+       //  property
+       //----------------------------------
+
+       /**
+        *  The name of the property on the target to animate.
+        *  This attribute is required.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
+        */
+       public var property:String;
+       
+       //----------------------------------
+       //  roundValue
+       //----------------------------------
+       
+       /**
+        *  If <code>true</code>, round off the interpolated tweened value
+        *  to the nearest integer. 
+        *  This property is useful if the property you are animating
+        *  is an int or uint.
+        *  
+        *  @default false
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
+        */
+       public var roundValue:Boolean = false;  
+               
+       //----------------------------------
+       //  fromValue
+       //----------------------------------
+
+       /**
+        *  The starting value of the property for the effect.
+        *  The default value is the target's current property value.
+        *  
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
+        */
+       public var fromValue:Number;
+       
+       
//--------------------------------------------------------------------------
+       //
+       //  Overridden methods
+       //
+       
//--------------------------------------------------------------------------
+
+       /**
+        *  @private
+        */
+       override public function play():void
+       {
+               // Do what effects normally do when they start, namely
+               // dispatch an 'effectStart' event from the target.
+               super.play();
+               
+               if (isNaN(fromValue))
+               {
+                       fromValue = getCurrentValue();
+               }
+               
+               if (isNaN(toValue))
+               {
+                       if (propertyChanges && propertyChanges.end[property] 
!== undefined)
+                               toValue = propertyChanges.end[property];
+                       else
+                               toValue = getCurrentValue();
+               }
+               
+               // Create a Tween object to interpolate the 
verticalScrollPosition.
+               tween = createTween(this, fromValue, toValue, duration);
+
+               // If the caller supplied their own easing equation, override 
the
+               // one that's baked into Tween.
+               if (easingFunction != null)
+                       tween.easingFunction = easingFunction;
+
+               applyTweenStartValues();
+       }
+       
+       
+       /**
+        *  @private
+        */
+       override public function onTweenUpdate(value:Object):void
+       {
+               if (!isStyle)
+                       target[property] = roundValue ? 
Math.round(Number(value)) : value;      
+               else
+                       target.setStyle(property, value);
+       }
+       
+       
//--------------------------------------------------------------------------
+       //
+       //  Methods
+       //
+       
//--------------------------------------------------------------------------
+
+       /**
+        *  @private
+        */
+       private function getCurrentValue():Number
+       {
+               var currentValue:Number;
+               
+               if (!isStyle)
+                       currentValue = target[property];
+               else
+                       currentValue = target.getStyle(property);
+               
+               return roundValue ? Math.round(currentValue) : currentValue;
+       }
+}
+
+}

Reply via email to