diff options
5 files changed, 66 insertions, 38 deletions
diff --git a/js/panels/Timeline/PropertyTrack.reel/PropertyTrack.js b/js/panels/Timeline/PropertyTrack.reel/PropertyTrack.js index f2004b94..fbc3edd0 100644 --- a/js/panels/Timeline/PropertyTrack.reel/PropertyTrack.js +++ b/js/panels/Timeline/PropertyTrack.reel/PropertyTrack.js | |||
@@ -183,16 +183,20 @@ var PropertyTrack = exports.PropertyTrack = Montage.create(Component, { | |||
183 | }, | 183 | }, |
184 | 184 | ||
185 | handleClick:{ | 185 | handleClick:{ |
186 | value:function(ev){ | 186 | value:function (ev) { |
187 | if (ev.shiftKey) { | 187 | if (ev.shiftKey) { |
188 | 188 | ||
189 | if (this.trackType == "position") { | ||
190 | this.parentComponent.parentComponent.parentComponent.handleNewTween(ev); | ||
191 | } | ||
192 | |||
189 | if (this.propTweens.length < 1) { | 193 | if (this.propTweens.length < 1) { |
190 | 194 | ||
191 | // check if there is an editor property assigned yet | 195 | // check if there is an editor property assigned yet |
192 | // get this property track's editor prop name from layer data arrays | 196 | // get this property track's editor prop name from layer data arrays |
193 | var selectIndex = this.application.ninja.timeline.getLayerIndexByID(this.trackID); | 197 | var selectIndex = this.application.ninja.timeline.getLayerIndexByID(this.trackID); |
194 | 198 | ||
195 | if (this.trackType === "style") { | 199 | if (this.trackType == "style") { |
196 | if (this.application.ninja.timeline.arrLayers[selectIndex].layerData.arrLayerStyles[this.styleIndex].editorProperty == null) { | 200 | if (this.application.ninja.timeline.arrLayers[selectIndex].layerData.arrLayerStyles[this.styleIndex].editorProperty == null) { |
197 | console.log("Please enter a style property for this track before adding keyframes."); | 201 | console.log("Please enter a style property for this track before adding keyframes."); |
198 | return; | 202 | return; |
@@ -200,7 +204,7 @@ var PropertyTrack = exports.PropertyTrack = Montage.create(Component, { | |||
200 | this.trackEditorProperty = this.application.ninja.timeline.arrLayers[selectIndex].layerData.arrLayerStyles[this.styleIndex].editorProperty; | 204 | this.trackEditorProperty = this.application.ninja.timeline.arrLayers[selectIndex].layerData.arrLayerStyles[this.styleIndex].editorProperty; |
201 | //console.log("Property track editorProperty set to: " + this.trackEditorProperty); | 205 | //console.log("Property track editorProperty set to: " + this.trackEditorProperty); |
202 | } | 206 | } |
203 | } else if (this.trackType === "position") { | 207 | } else if (this.trackType == "position") { |
204 | //console.log("Property track editorProperty set to: " + this.trackEditorProperty); | 208 | //console.log("Property track editorProperty set to: " + this.trackEditorProperty); |
205 | } | 209 | } |
206 | 210 | ||
@@ -220,9 +224,8 @@ var PropertyTrack = exports.PropertyTrack = Montage.create(Component, { | |||
220 | if (ev.offsetX > this.propTweens[this.propTweens.length - 1].tweenData.keyFramePosition) { | 224 | if (ev.offsetX > this.propTweens[this.propTweens.length - 1].tweenData.keyFramePosition) { |
221 | this.insertPropTween(ev.offsetX); | 225 | this.insertPropTween(ev.offsetX); |
222 | } else { | 226 | } else { |
223 | console.log("spitting sub keyframes not yet supported"); | 227 | console.log("Splitting style tweens not yet supported."); |
224 | } | 228 | } |
225 | |||
226 | } | 229 | } |
227 | }, | 230 | }, |
228 | 231 | ||
@@ -266,6 +269,45 @@ var PropertyTrack = exports.PropertyTrack = Montage.create(Component, { | |||
266 | } | 269 | } |
267 | }, | 270 | }, |
268 | 271 | ||
272 | splitPropTween:{ | ||
273 | value:function (ev) { | ||
274 | console.log("splitting sub prop tween with new keyframe"); | ||
275 | var clickPos = ev.target.parentElement.offsetLeft + ev.offsetX; | ||
276 | var i; | ||
277 | var tweensLength = this.propTweens.length - 1; | ||
278 | var prevTween, nextTween, splitTweenIndex; | ||
279 | for (i = 0; i < tweensLength; i++) { | ||
280 | prevTween = this.propTweens[i].tweenData.keyFramePosition; | ||
281 | nextTween = this.propTweens[i + 1].tweenData.keyFramePosition; | ||
282 | if (clickPos > prevTween && clickPos < nextTween) { | ||
283 | //console.log(clickPos + " found on tween: "+ this.tweens[i+1].tweenData.tweenID); | ||
284 | splitTweenIndex = this.propTweens[i + 1].tweenData.tweenID; | ||
285 | this.propTweens[i + 1].tweenData.spanWidth = this.propTweens[i + 1].tweenData.keyFramePosition - clickPos; | ||
286 | this.propTweens[i + 1].tweenData.spanPosition = ev.target.parentElement.offsetLeft + ev.offsetX; | ||
287 | if (ev.target.className != "tween-span") { | ||
288 | // don't set styles on timeline track if event is coming from the track | ||
289 | } else { | ||
290 | ev.target.style.width = this.propTweens[i + 1].tweenData.spanWidth + "px"; | ||
291 | ev.target.parentElement.style.left = clickPos + "px"; | ||
292 | ev.target.parentElement.children[1].style.left = (this.propTweens[i + 1].tweenData.spanWidth - 3) + "px"; | ||
293 | } | ||
294 | var newTweenToInsert = {}; | ||
295 | newTweenToInsert.tweenData = {}; | ||
296 | newTweenToInsert.tweenData.spanWidth = clickPos - prevTween; | ||
297 | newTweenToInsert.tweenData.keyFramePosition = clickPos; | ||
298 | newTweenToInsert.tweenData.keyFrameMillisec = Math.floor(this.application.ninja.timeline.millisecondsOffset / 80) * clickPos; | ||
299 | newTweenToInsert.tweenData.tweenID = splitTweenIndex - 1; | ||
300 | newTweenToInsert.tweenData.spanPosition = clickPos - newTweenToInsert.tweenData.spanWidth; | ||
301 | newTweenToInsert.tweenData.tweenedProperties = []; | ||
302 | newTweenToInsert.tweenData.tweenedProperties[this.trackEditorProperty] = this.ninjaStylesContoller.getElementStyle(this.animatedElement, this.trackEditorProperty); | ||
303 | this.propTweens.splice(splitTweenIndex, 0, newTweenToInsert); | ||
304 | break; | ||
305 | } | ||
306 | } | ||
307 | this.application.ninja.documentController.activeDocument.needsSave = true; | ||
308 | } | ||
309 | }, | ||
310 | |||
269 | retrieveStoredStyleTweens:{ | 311 | retrieveStoredStyleTweens:{ |
270 | value:function(){ | 312 | value:function(){ |
271 | console.log("retrieve style tweens"); | 313 | console.log("retrieve style tweens"); |
diff --git a/js/panels/Timeline/PropertyTrack.reel/css/PropertyTrack.css b/js/panels/Timeline/PropertyTrack.reel/css/PropertyTrack.css index ddcc536e..5d71e2e7 100644 --- a/js/panels/Timeline/PropertyTrack.reel/css/PropertyTrack.css +++ b/js/panels/Timeline/PropertyTrack.reel/css/PropertyTrack.css | |||
@@ -8,7 +8,7 @@ | |||
8 | */ | 8 | */ |
9 | /* line 19, ../scss/PropertyTrack.scss */ | 9 | /* line 19, ../scss/PropertyTrack.scss */ |
10 | .content-main .collapsible-content .timeline-track { | 10 | .content-main .collapsible-content .timeline-track { |
11 | height: 20px; | 11 | height: 18px; |
12 | padding-top: 2px; | 12 | padding-top: 2px; |
13 | border-bottom: 1px solid #505050; | 13 | border-bottom: 1px solid #505050; |
14 | background-image: url("../images/gridline.jpg"); | 14 | background-image: url("../images/gridline.jpg"); |
diff --git a/js/panels/Timeline/PropertyTrack.reel/scss/PropertyTrack.scss b/js/panels/Timeline/PropertyTrack.reel/scss/PropertyTrack.scss index 31aed851..a560ff3c 100644 --- a/js/panels/Timeline/PropertyTrack.reel/scss/PropertyTrack.scss +++ b/js/panels/Timeline/PropertyTrack.reel/scss/PropertyTrack.scss | |||
@@ -17,7 +17,7 @@ | |||
17 | 17 | ||
18 | 18 | ||
19 | .content-main .collapsible-content .timeline-track { | 19 | .content-main .collapsible-content .timeline-track { |
20 | height: 20px; | 20 | height: 18px; |
21 | padding-top: 2px; | 21 | padding-top: 2px; |
22 | border-bottom: 1px solid $color-menu-divider; | 22 | border-bottom: 1px solid $color-menu-divider; |
23 | background-image: url("../images/gridline.jpg"); | 23 | background-image: url("../images/gridline.jpg"); |
diff --git a/js/panels/Timeline/TimelineTrack.reel/css/TimelineTrack.css b/js/panels/Timeline/TimelineTrack.reel/css/TimelineTrack.css index 57e4dce6..03d1cf8d 100644 --- a/js/panels/Timeline/TimelineTrack.reel/css/TimelineTrack.css +++ b/js/panels/Timeline/TimelineTrack.reel/css/TimelineTrack.css | |||
@@ -1,15 +1,13 @@ | |||
1 | @charset "UTF-8"; | 1 | @charset "UTF-8"; |
2 | |||
3 | /* <copyright> | 2 | /* <copyright> |
4 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | 3 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> |
5 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | 4 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> |
6 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 5 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. |
7 | </copyright> */ | 6 | </copyright> */ |
8 | |||
9 | /* TimelineTrack.scss | 7 | /* TimelineTrack.scss |
10 | * Main SCSS file for TimelineTrack component, compiled by SASS into the file css/TimelineTrack.css. | 8 | * Main SCSS file for TimelineTrack component, compiled by SASS into the file css/TimelineTrack.css. |
11 | */ | 9 | */ |
12 | /* line 16, ../scss/TimelineTrack.scss */ | 10 | /* line 22, ../scss/TimelineTrack.scss */ |
13 | .tracklane { | 11 | .tracklane { |
14 | height: 19px; | 12 | height: 19px; |
15 | width: 100%; | 13 | width: 100%; |
@@ -22,7 +20,7 @@ | |||
22 | overflow: hidden; | 20 | overflow: hidden; |
23 | } | 21 | } |
24 | 22 | ||
25 | /* line 28, ../scss/TimelineTrack.scss */ | 23 | /* line 34, ../scss/TimelineTrack.scss */ |
26 | .keyframe { | 24 | .keyframe { |
27 | position: absolute; | 25 | position: absolute; |
28 | height: 16px; | 26 | height: 16px; |
@@ -30,7 +28,7 @@ | |||
30 | background-color: white; | 28 | background-color: white; |
31 | } | 29 | } |
32 | 30 | ||
33 | /* line 36, ../scss/TimelineTrack.scss */ | 31 | /* line 42, ../scss/TimelineTrack.scss */ |
34 | .defaultSpan { | 32 | .defaultSpan { |
35 | position: absolute; | 33 | position: absolute; |
36 | height: 16px; | 34 | height: 16px; |
@@ -38,23 +36,23 @@ | |||
38 | background-color: white; | 36 | background-color: white; |
39 | } | 37 | } |
40 | 38 | ||
41 | /* line 45, ../scss/TimelineTrack.scss */ | 39 | /* line 51, ../scss/TimelineTrack.scss */ |
42 | .tl_layertracks .content-position { | 40 | .tl_layertracks .content-position { |
43 | height: 63px; | 41 | height: 63px; |
44 | } | 42 | } |
45 | 43 | ||
46 | /* line 48, ../scss/TimelineTrack.scss */ | 44 | /* line 54, ../scss/TimelineTrack.scss */ |
47 | .tl_layertracks .content-transform { | 45 | .tl_layertracks .content-transform { |
48 | height: 106px; | 46 | height: 106px; |
49 | } | 47 | } |
50 | 48 | ||
51 | /* line 52, ../scss/TimelineTrack.scss */ | 49 | /* line 58, ../scss/TimelineTrack.scss */ |
52 | .tl_layertracks .collapsible-content.collapsible-collapsed { | 50 | .tl_layertracks .collapsible-content.collapsible-collapsed { |