diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | 34 | ||||
-rw-r--r-- | js/panels/Timeline/TimelineTrack.reel/TimelineTrack.js | 20 |
2 files changed, 43 insertions, 11 deletions
diff --git a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js index 4185e54a..af358468 100644 --- a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js +++ b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js | |||
@@ -1090,10 +1090,36 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, { | |||
1090 | var tempEv = {}; | 1090 | var tempEv = {}; |
1091 | tempEv.offsetX = this.playheadmarker.offsetLeft; | 1091 | tempEv.offsetX = this.playheadmarker.offsetLeft; |
1092 | tempEv.actionType = action; | 1092 | tempEv.actionType = action; |
1093 | if (typeof(this.trackRepetition.childComponents[this.currentLayersSelected[0]]) !== "undefined") { | 1093 | |
1094 | this.trackRepetition.childComponents[this.currentLayersSelected[0]].handleKeyboardShortcut(tempEv); | 1094 | if (this.currentLayersSelected === false) { |
1095 | } else { | 1095 | // oops, we do not have a layer selected. We should growl at the user. For now, this will fail silently. |
1096 | // oops, we do not have a layer selected. We should growl at the user. For now, this will fail silently. | 1096 | return; |
1097 | } | ||
1098 | |||
1099 | // Okay. We need to get the correct layer(s). For each currentElementSelected, | ||
1100 | // loop through trackRepetition.childComponents and compare to stageElement. | ||
1101 | // If they match, that's one of the components that needs the event. | ||
1102 | var i = 0, | ||
1103 | j = 0, | ||
1104 | currentElementsSelectedLength = this.currentElementsSelected.length, | ||
1105 | trackRepLength = this.trackRepetition.childComponents.length, | ||
1106 | arrTargetIndexes = [], | ||
1107 | arrTargetIndexesLength = 0; | ||
1108 | |||
1109 | |||
1110 | for (i = 0; i < trackRepLength; i++) { | ||
1111 | var currentElement = this.trackRepetition.childComponents[i].stageElement; | ||
1112 | for (j = 0; j < currentElementsSelectedLength; j++) { | ||
1113 | if (currentElement === this.currentElementsSelected[j]) { | ||
1114 | arrTargetIndexes.push(i); | ||
1115 | } | ||
1116 | } | ||
1117 | } | ||
1118 | arrTargetIndexesLength = arrTargetIndexes.length; | ||
1119 | |||
1120 | // Now we have an array of things that need to handle the event. | ||
1121 | for (i = 0; i < arrTargetIndexesLength; i++) { | ||
1122 | this.trackRepetition.childComponents[arrTargetIndexes[i]].handleKeyboardShortcut(tempEv); | ||
1097 | } | 1123 | } |
1098 | } | 1124 | } |
1099 | }, | 1125 | }, |
diff --git a/js/panels/Timeline/TimelineTrack.reel/TimelineTrack.js b/js/panels/Timeline/TimelineTrack.reel/TimelineTrack.js index d4eabbf5..014d3f34 100644 --- a/js/panels/Timeline/TimelineTrack.reel/TimelineTrack.js +++ b/js/panels/Timeline/TimelineTrack.reel/TimelineTrack.js | |||
@@ -706,6 +706,8 @@ var TimelineTrack = exports.TimelineTrack = Montage.create(Component, { | |||
706 | this.application.ninja.timeline.updateTimeText(currentMillisec); | 706 | this.application.ninja.timeline.updateTimeText(currentMillisec); |
707 | 707 | ||
708 | if (ev.shiftKey) { | 708 | if (ev.shiftKey) { |
709 | var selectedIndex = this.application.ninja.timeline.getLayerIndexByID(this.trackID); | ||
710 | this.application.ninja.timeline.selectLayer(selectedIndex, true); | ||
709 | if (this.tweens.length < 1) { | 711 | if (this.tweens.length < 1) { |
710 | this.insertTween(0); | 712 | this.insertTween(0); |
711 | this.addAnimationRuleToElement(ev); | 713 | this.addAnimationRuleToElement(ev); |
@@ -743,6 +745,7 @@ var TimelineTrack = exports.TimelineTrack = Montage.create(Component, { | |||
743 | 745 | ||
744 | handleNewTween:{ | 746 | handleNewTween:{ |
745 | value:function (ev) { | 747 | value:function (ev) { |
748 | |||
746 | if (ev.offsetX > this.tweens[this.tweens.length - 1].tweenData.keyFramePosition) { | 749 | if (ev.offsetX > this.tweens[this.tweens.length - 1].tweenData.keyFramePosition) { |
747 | var selectedIndex = this.application.ninja.timeline.getLayerIndexByID(this.trackID); | 750 | var selectedIndex = this.application.ninja.timeline.getLayerIndexByID(this.trackID); |
748 | this.application.ninja.timeline.selectLayer(selectedIndex, false); | 751 | this.application.ninja.timeline.selectLayer(selectedIndex, false); |
@@ -750,10 +753,13 @@ var TimelineTrack = exports.TimelineTrack = Montage.create(Component, { | |||
750 | } else { | 753 | } else { |
751 | // We will be splitting a tween. Get the x-coordinate of the mouse click within the target element. | 754 | // We will be splitting a tween. Get the x-coordinate of the mouse click within the target element. |
752 | // You'd think you could use the event.x info for that, right? NO. We must use page values, calculating offsets and scrolling. | 755 | // You'd think you could use the event.x info for that, right? NO. We must use page values, calculating offsets and scrolling. |
753 | var targetElementOffset = this.findXOffset(ev.currentTarget), | 756 | if (typeof(ev.currentTarget) === "undefined") { |
754 | position = event.pageX - targetElementOffset; | 757 | this.splitTweenAt(ev.offsetX); |
755 | 758 | } else { | |
756 | this.splitTweenAt(position-18); | 759 | var targetElementOffset = this.findXOffset(ev.currentTarget), |
760 | position = event.pageX - targetElementOffset; | ||
761 | this.splitTweenAt(position-18); | ||
762 | } | ||
757 | } | 763 | } |
758 | } | 764 | } |
759 | }, | 765 | }, |
@@ -762,6 +768,9 @@ var TimelineTrack = exports.TimelineTrack = Montage.create(Component, { | |||
762 | value:function (obj) { | 768 | value:function (obj) { |
763 | // Here's an easy function that adds up offsets and scrolls and returns the page x value of an element | 769 | // Here's an easy function that adds up offsets and scrolls and returns the page x value of an element |
764 | var curleft = 0; | 770 | var curleft = 0; |
771 | if (typeof(obj) === "undefined") { | ||
772 | //debugger; | ||
773 | } | ||
765 | if (obj.offsetParent) { | 774 | if (obj.offsetParent) { |
766 | do { | 775 | do { |
767 | curleft += (obj.offsetLeft - obj.scrollLeft); | 776 | curleft += (obj.offsetLeft - obj.scrollLeft); |
@@ -774,9 +783,6 @@ var TimelineTrack = exports.TimelineTrack = Montage.create(Component, { | |||
774 | 783 | ||
775 | insertTween:{ | 784 | insertTween:{ |
776 | value:function (clickPos) { | 785 | value:function (clickPos) { |
777 | var selectedIndex = this.application.ninja.timeline.getLayerIndexByID(this.trackID); | ||
778 | this.application.ninja.timeline.selectLayer(selectedIndex, true); | ||
779 | |||
780 | var currentMillisecPerPixel = Math.floor(this.application.ninja.timeline.millisecondsOffset / 80); | 786 | var currentMillisecPerPixel = Math.floor(this.application.ninja.timeline.millisecondsOffset / 80); |
781 | var currentMillisec = currentMillisecPerPixel * clickPos; | 787 | var currentMillisec = currentMillisecPerPixel * clickPos; |
782 | this.trackDuration = currentMillisec; | 788 | this.trackDuration = currentMillisec; |