aboutsummaryrefslogtreecommitdiff
path: root/js/panels/Timeline/TimelinePanel.reel
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels/Timeline/TimelinePanel.reel')
-rw-r--r--js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js111
1 files changed, 105 insertions, 6 deletions
diff --git a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
index 03db7880..4b82814b 100644
--- a/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
+++ b/js/panels/Timeline/TimelinePanel.reel/TimelinePanel.js
@@ -259,6 +259,8 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
259 timeMarkerHolder:{ 259 timeMarkerHolder:{
260 value:null 260 value:null
261 }, 261 },
262
263 // Drag and Drop properties
262 _dragAndDropHelper : { 264 _dragAndDropHelper : {
263 value: false 265 value: false
264 }, 266 },
@@ -328,6 +330,21 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
328 _scrollTracks: { 330 _scrollTracks: {
329 value: false 331 value: false
330 }, 332 },
333
334 // Keyframe drag and drop properties
335 _draggingTrackId: {
336 value: false
337 },
338 draggingTrackId: {
339 get: function() {
340 return this._draggingTrackId;
341 },
342 set: function(newVal) {
343 this._draggingTrackId = newVal;
344 }
345 },
346
347
331 useAbsolutePosition:{ 348 useAbsolutePosition:{
332 value:true 349 value:true
333 }, 350 },
@@ -352,8 +369,9 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
352 this.container_layers.addEventListener("dragstart", this.handleLayerDragStart.bind(this), false); 369 this.container_layers.addEventListener("dragstart", this.handleLayerDragStart.bind(this), false);
353 this.container_layers.addEventListener("dragend", this.handleLayerDragEnd.bind(this), false); 370 this.container_layers.addEventListener("dragend", this.handleLayerDragEnd.bind(this), false);
354 this.container_layers.addEventListener("dragover", this.handleLayerDragover.bind(this), false); 371 this.container_layers.addEventListener("dragover", this.handleLayerDragover.bind(this), false);
355 //this.container_tracks.addEventListener("dragover", this.handleKeyframeDragover.bind(this), false);
356 this.container_layers.addEventListener("drop", this.handleLayerDrop.bind(this), false); 372 this.container_layers.addEventListener("drop", this.handleLayerDrop.bind(this), false);
373 this.container_tracks.addEventListener("dragover", this.handleKeyframeDragover.bind(this), false);
374 this.container_tracks.addEventListener("drop", this.handleKeyframeDrop.bind(this), false);
357 375
358 // Bind the handlers for the config menu 376 // Bind the handlers for the config menu
359 this.checkable_animated.addEventListener("click", this.handleAnimatedClick.bind(this), false); 377 this.checkable_animated.addEventListener("click", this.handleAnimatedClick.bind(this), false);
@@ -1501,11 +1519,6 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
1501 this.needsDraw = true; 1519 this.needsDraw = true;
1502 } 1520 }
1503 }, 1521 },
1504 handleKeyframeDragover: {
1505 value: function(event) {
1506
1507 }
1508 },
1509 handleLayerDragEnd : { 1522 handleLayerDragEnd : {
1510 value: function(event) { 1523 value: function(event) {
1511 this._deleteHelper = true; 1524 this._deleteHelper = true;
@@ -1521,6 +1534,92 @@ var TimelinePanel = exports.TimelinePanel = Montage.create(Component, {
1521 this.needsDraw = true; 1534 this.needsDraw = true;
1522 } 1535 }
1523 }, 1536 },
1537
1538 // Keyframe drag-and-drop
1539 handleKeyframeDragover: {
1540 value: function(event) {
1541 event.preventDefault();
1542 var currPos = 0;
1543 /*
1544 myScrollTest = ((event.y - (this._dragAndDropHelperOffset - this.user_layers.scrollTop)) + 28) - this.user_layers.scrollTop;
1545 if ((myScrollTest < 60) && (this.user_layers.scrollTop >0)) {
1546 this._scrollTracks = (this.user_layers.scrollTop - 10)
1547 }
1548 if ((myScrollTest < 50) && (this.user_layers.scrollTop >0)) {
1549 this._scrollTracks = (this.user_layers.scrollTop - 20)
1550 }
1551 if ((myScrollTest > (this.user_layers.clientHeight + 10))) {
1552 this._scrollTracks = (this.user_layers.scrollTop + 10)
1553 }
1554 if ((myScrollTest > (this.user_layers.clientHeight + 20))) {
1555 this._scrollTracks = (this.user_layers.scrollTop + 20)
1556
1557 }
1558 */
1559 //currPos = event.y - (this._dragAndDropHelperOffset - this.user_layers.scrollTop)- 28;
1560 currPos = event.x - 277;
1561
1562 // too much or too little?
1563 if (currPos < this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMinPosition) {
1564 currPos = this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMinPosition;
1565 }
1566 if (currPos > this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMaxPosition) {
1567 currPos = this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMaxPosition;
1568 }
1569 //debugger;
1570 this.trackRepetition.childComponents[this.draggingTrackId-1].dragAndDropHelperCoords = currPos + "px";
1571 this.trackRepetition.childComponents[this.draggingTrackId-1].needsDraw = true;
1572 return false;
1573 }
1574 },
1575 handleKeyframeDrop: {
1576 value: function(event) {
1577 event.stopPropagation();
1578 //this.element.classList.remove("dragOver");
1579 //if (this.parentComponent.parentComponent.dragLayerID !== this.layerID) {
1580 //this.parentComponent.parentComponent.dropLayerID = this.layerID;
1581 //}
1582
1583 /*
1584 * First, what keyframe is it (get the index);
1585 * Limit keyframe position to between index-1 and index+1 keyFramePosition
1586 * On update, be sure to update index+1's information too
1587 *
1588 */
1589
1590 var currPos = event.x - 274,
1591 currentMillisecPerPixel = Math.floor(this.millisecondsOffset / 80),
1592 currentMillisec = 0,
1593 i = 0,
1594 tweenIndex = this.trackRepetition.childComponents[this.draggingTrackId-1].draggingIndex;
1595
1596 // too much or too little?
1597 if (currPos < this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMinPosition) {
1598 currPos = this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMinPosition + 3;
1599 }
1600 if (currPos > this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMaxPosition) {
1601 currPos = this.trackRepetition.childComponents[this.draggingTrackId-1]._keyframeMaxPosition + 3;
1602 }
1603
1604 currentMillisec = currentMillisecPerPixel * currPos;
1605
1606 this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex].tweenData.spanWidth = currPos - this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex - 1].tweenData.keyFramePosition;
1607 this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex].tweenData.keyFramePosition = currPos;
1608 this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex].tweenData.keyFrameMillisec = currentMillisec;
1609 this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex].tweenData.spanPosition = currPos - this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex].tweenData.spanWidth;
1610 this.trackRepetition.childComponents[this.draggingTrackId-1].tweenRepetition.childComponents[tweenIndex].setData();
1611 if (tweenIndex < this.trackRepetition.childComponents[this.draggingTrackId-1].tweens.length -1) {
1612 var spanWidth = this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex +1].tweenData.keyFramePosition - currPos;
1613 var spanPosition = currPos;
1614 this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex +1].tweenData.spanWidth = spanWidth;
1615 this.trackRepetition.childComponents[this.draggingTrackId-1].tweens[tweenIndex +1].tweenData.spanPosition = currPos;
1616 this.trackRepetition.childComponents[this.draggingTrackId-1].tweenRepetition.childComponents[tweenIndex+1].setData();
1617 }
1618 this.trackRepetition.childComponents[this.draggingTrackId-1].tweenRepetition.childComponents[tweenIndex].selectTween();
1619 this.trackRepetition.childComponents[this.draggingTrackId-1].updateKeyframeRule();
1620 return false;
1621 }
1622 },
1524 /* === END: Controllers === */ 1623 /* === END: Controllers === */
1525 1624
1526 /* === BEGIN: Logging routines === */ 1625 /* === BEGIN: Logging routines === */