MCPcopy
hub / github.com/alyssaxuu/motionity / updateKeyframe

Function updateKeyframe

src/js/functions.js:4897–5158  ·  view source on GitHub ↗
(drag, newval, offset)

Source from the content-addressed store, hash-verified

4895
4896// Update keyframe (after dragging)
4897function 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'

Callers 3

newKeyframeFunction · 0.85
releasedKeyframeFunction · 0.85
draggingFunction · 0.85

Calls 2

newKeyframeFunction · 0.85
$Function · 0.50

Tested by

no test coverage detected