コード例 #1
0
        public PointF ValueFromObject(IJsonValue @object, float scale)
        {
            if (@object.ValueType == JsonValueType.Array)
            {
                return(JsonUtils.PointFromJsonArray(@object.GetArray(), scale));
            }
            if (@object.ValueType == JsonValueType.Object)
            {
                return(JsonUtils.PointFromJsonObject(@object.GetObject(), scale));
            }

            throw new System.ArgumentException("Unable to parse point from " + @object);
        }
コード例 #2
0
 internal AnimatablePathValue(IJsonValue json, LottieComposition composition)
 {
     if (HasKeyframes(json))
     {
         var jsonArray = json.GetArray();
         var length    = jsonArray.Count;
         for (var i = 0; i < length; i++)
         {
             var jsonKeyframe = jsonArray[i].GetObject();
             var keyframe     = PathKeyframe.PathKeyframeFactory.NewInstance(jsonKeyframe, composition, ValueFactory.Instance);
             _keyframes.Add(keyframe);
         }
         Keyframe <PathKeyframe> .SetEndFrames <PathKeyframe, PointF>(_keyframes);
     }
     else
     {
         _initialPoint = JsonUtils.PointFromJsonArray(json.GetArray(), composition.DpScale);
     }
 }
コード例 #3
0
            internal static PathKeyframe NewInstance(JsonObject json, LottieComposition composition, IAnimatableValueFactory <PointF> valueFactory)
            {
                var    keyframe = KeyFrameFactory.NewInstance(json, composition, composition.DpScale, valueFactory);
                PointF cp1      = null;
                PointF cp2      = null;
                var    tiJson   = json.GetNamedArray("ti", null);
                var    toJson   = json.GetNamedArray("to", null);

                if (tiJson != null && toJson != null)
                {
                    cp1 = JsonUtils.PointFromJsonArray(toJson, composition.DpScale);
                    cp2 = JsonUtils.PointFromJsonArray(tiJson, composition.DpScale);
                }

                var pathKeyframe = new PathKeyframe(composition, keyframe.StartValue, keyframe.EndValue, keyframe.Interpolator, keyframe.StartFrame, keyframe.EndFrame);

                var equals = keyframe.EndValue != null && keyframe.StartValue != null && keyframe.StartValue.Equals(keyframe.EndValue);

                if (pathKeyframe.EndValue != null && !equals)
                {
                    pathKeyframe._path = Utils.CreatePath(keyframe.StartValue, keyframe.EndValue, cp1, cp2);
                }
                return(pathKeyframe);
            }
コード例 #4
0
 public PointF ValueFromObject(IJsonValue @object, float scale)
 {
     return(JsonUtils.PointFromJsonArray(@object.GetArray(), scale));
 }