(drag, newval, offset)
| 4895 | |
| 4896 | // Update keyframe (after dragging) |
| 4897 | function updateKeyframe(drag, newval, offset) { |
| 4898 | var time = parseFloat( |
| 4899 | (drag.position().left * timelinetime).toFixed(1) |
| 4900 | ); |
| 4901 | const keyprop = drag.attr('data-property'); |
| 4902 | const keytime = drag.attr('data-time'); |
| 4903 | const keyarr = $.grep(keyframes, function (e) { |
| 4904 | return ( |
| 4905 | e.t == parseFloat(keytime) && |
| 4906 | e.id == drag.attr('data-object') && |
| 4907 | e.name == keyprop |
| 4908 | ); |
| 4909 | }); |
| 4910 | const keyobj = canvas.getItemById(keyarr[0].id); |
| 4911 | time = |
| 4912 | parseFloat( |
| 4913 | p_keyframes.find((x) => x.id == keyobj.get('id')).start |
| 4914 | ) + time; |
| 4915 | if (newval) { |
| 4916 | time = currenttime; |
| 4917 | } |
| 4918 | var keyval = keyarr[0].value; |
| 4919 | if (newval) { |
| 4920 | if (keyprop == 'shadow.color') { |
| 4921 | keyval = keyobj.shadow.color; |
| 4922 | } else if (keyprop == 'volume') { |
| 4923 | keyval = parseFloat($('#object-volume input').val() / 200); |
| 4924 | } else { |
| 4925 | keyval = keyobj.get(keyprop); |
| 4926 | } |
| 4927 | } else if (keyprop == 'left') { |
| 4928 | keyval = keyval + artboard.get('left'); |
| 4929 | } |
| 4930 | keyframes = $.grep(keyframes, function (e) { |
| 4931 | return ( |
| 4932 | e.t != parseFloat(keytime) || |
| 4933 | e.id != drag.attr('data-object') || |
| 4934 | e.name != keyprop |
| 4935 | ); |
| 4936 | }); |
| 4937 | newKeyframe(keyprop, keyobj, time, keyval, false); |
| 4938 | if (keyprop == 'left') { |
| 4939 | const keyarr2 = $.grep(keyframes, function (e) { |
| 4940 | return ( |
| 4941 | e.t == parseFloat(keytime) && |
| 4942 | e.id == drag.attr('data-object') && |
| 4943 | e.name == 'top' |
| 4944 | ); |
| 4945 | }); |
| 4946 | var keyval2 = keyarr2[0].value + artboard.get('top'); |
| 4947 | if (newval) { |
| 4948 | keyval2 = canvas.getItemById(keyarr2[0].id).get('top'); |
| 4949 | } |
| 4950 | keyframes = $.grep(keyframes, function (e) { |
| 4951 | return ( |
| 4952 | e.t != parseFloat(keytime) || |
| 4953 | e.id != drag.attr('data-object') || |
| 4954 | e.name != 'top' |
no test coverage detected