diff options
Diffstat (limited to 'js/panels/Timeline/Keyframe.reel/Keyframe.js')
-rw-r--r-- | js/panels/Timeline/Keyframe.reel/Keyframe.js | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/js/panels/Timeline/Keyframe.reel/Keyframe.js b/js/panels/Timeline/Keyframe.reel/Keyframe.js index 859cdfb1..b91027b6 100644 --- a/js/panels/Timeline/Keyframe.reel/Keyframe.js +++ b/js/panels/Timeline/Keyframe.reel/Keyframe.js | |||
@@ -31,24 +31,32 @@ var Keyframe = exports.Keyframe = Montage.create(Component, { | |||
31 | prepareForDraw:{ | 31 | prepareForDraw:{ |
32 | value:function(){ | 32 | value:function(){ |
33 | this.element.addEventListener("click", this, false); | 33 | this.element.addEventListener("click", this, false); |
34 | |||
35 | // Drag and drop event handlers | ||
36 | this.element.addEventListener("mouseover", this.handleMouseover.bind(this), false); | ||
37 | this.element.addEventListener("mouseout", this.handleMouseout.bind(this), false); | ||
38 | this.element.addEventListener("dragstart", this.handleDragstart.bind(this), false); | ||
39 | this.element.addEventListener("dragend", this.handleDragend.bind(this), false); | ||
34 | } | 40 | } |
35 | }, | 41 | }, |
36 | 42 | ||
37 | draw:{ | 43 | draw:{ |
38 | value:function(){ | 44 | value:function(){ |
39 | this.element.style.left = (this.position - 3) + "px"; | 45 | this.element.style.left = (this.position - 5) + "px"; |
40 | } | 46 | } |
41 | }, | 47 | }, |
42 | 48 | ||
43 | deselectKeyframe:{ | 49 | deselectKeyframe:{ |
44 | value:function(){ | 50 | value:function(){ |
45 | this.element.classList.remove("keyframeSelected"); | 51 | this.element.classList.remove("keyframeSelected"); |
52 | this.element.style.left = (this.position - 5) + "px"; | ||
46 | } | 53 | } |
47 | }, | 54 | }, |
48 | 55 | ||
49 | selectKeyframe:{ | 56 | selectKeyframe:{ |
50 | value:function(){ | 57 | value:function(){ |
51 | this.element.classList.add("keyframeSelected"); | 58 | this.element.classList.add("keyframeSelected"); |
59 | this.element.style.left = (this.position - 6) + "px"; | ||
52 | this.parentComponent.selectTween(); | 60 | this.parentComponent.selectTween(); |
53 | } | 61 | } |
54 | }, | 62 | }, |
@@ -56,6 +64,42 @@ var Keyframe = exports.Keyframe = Montage.create(Component, { | |||
56 | handleClick:{ | 64 | handleClick:{ |
57 | value:function(ev){ | 65 | value:function(ev){ |
58 | this.selectKeyframe(); | 66 | this.selectKeyframe(); |
67 | ev.stopPropagation(); | ||
59 | } | 68 | } |
60 | } | 69 | }, |
70 | |||
71 | handleMouseover: { | ||
72 | value: function(event) { | ||
73 | this.element.draggable = true; | ||
74 | } | ||
75 | }, | ||
76 | handleMouseout: { | ||
77 | value: function(event) { | ||
78 | this.element.draggable = false; | ||
79 | } | ||
80 | }, | ||
81 | handleDragstart: { | ||
82 | value: function(event) { | ||
83 | //this.parentComponent.parentComponent.dragLayerID = this.layerID; | ||
84 | event.dataTransfer.setData('Text', 'Keyframe'); | ||
85 | |||
86 | // Get my index in my track's tween array | ||
87 | var i = 0, | ||
88 | tweenRepetitionLength = this.parentComponent.parentComponent.parentComponent.tweenRepetition.childComponents.length, | ||
89 | myIndex = null; | ||
90 | for (i = 0; i < tweenRepetitionLength; i++) { | ||
91 | if (this.parentComponent.parentComponent.parentComponent.tweenRepetition.childComponents[i].uuid === this.parentComponent.uuid) { | ||
92 | myIndex = i; | ||
93 | } | ||
94 | } | ||
95 | this.parentComponent.parentComponent.parentComponent.draggingIndex = myIndex; | ||
96 | this.selectKeyframe(); | ||
97 | } | ||
98 | }, | ||
99 | handleDragend: { | ||
100 | value: function(event) { | ||
101 | this.parentComponent.isDragging = false; | ||
102 | } | ||
103 | } | ||
104 | |||
61 | }); | 105 | }); |