diff options
Diffstat (limited to 'js/tools/TagTool.js')
-rwxr-xr-x | js/tools/TagTool.js | 54 |
1 files changed, 50 insertions, 4 deletions
diff --git a/js/tools/TagTool.js b/js/tools/TagTool.js index 31918f92..97d889de 100755 --- a/js/tools/TagTool.js +++ b/js/tools/TagTool.js | |||
@@ -1,7 +1,31 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | 2 | Copyright (c) 2012, Motorola Mobility, Inc |
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | 3 | All Rights Reserved. |
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | 4 | BSD License. |
5 | |||
6 | Redistribution and use in source and binary forms, with or without | ||
7 | modification, are permitted provided that the following conditions are met: | ||
8 | |||
9 | - Redistributions of source code must retain the above copyright notice, | ||
10 | this list of conditions and the following disclaimer. | ||
11 | - Redistributions in binary form must reproduce the above copyright | ||
12 | notice, this list of conditions and the following disclaimer in the | ||
13 | documentation and/or other materials provided with the distribution. | ||
14 | - Neither the name of Motorola Mobility nor the names of its contributors | ||
15 | may be used to endorse or promote products derived from this software | ||
16 | without specific prior written permission. | ||
17 | |||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
25 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
26 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
27 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
28 | POSSIBILITY OF SUCH DAMAGE. | ||
5 | </copyright> */ | 29 | </copyright> */ |
6 | 30 | ||
7 | var Montage = require("montage/core/core").Montage, | 31 | var Montage = require("montage/core/core").Montage, |
@@ -86,11 +110,15 @@ exports.TagTool = Montage.create(DrawingTool, { | |||
86 | // Create the element | 110 | // Create the element |
87 | if(this.options.selectedElement === "custom") { | 111 | if(this.options.selectedElement === "custom") { |
88 | element = document.application.njUtils.make(this.options.customName.value, null, this.application.ninja.currentDocument); | 112 | element = document.application.njUtils.make(this.options.customName.value, null, this.application.ninja.currentDocument); |
89 | |||
90 | } else { | 113 | } else { |
91 | element = document.application.njUtils.make(this.options.selectedElement, null, this.application.ninja.currentDocument); | 114 | element = document.application.njUtils.make(this.options.selectedElement, null, this.application.ninja.currentDocument); |
92 | } | 115 | } |
93 | 116 | ||
117 | // Adding a canplay event to videos to pause them and prevent autoplay on stage | ||
118 | if(this.options.selectedElement === "video") { | ||
119 | element.addEventListener("canplay", this, false); | ||
120 | } | ||
121 | |||
94 | // Create the styles | 122 | // Create the styles |
95 | styles = document.application.njUtils.stylesFromDraw(element, ~~drawData.width, ~~drawData.height, drawData); | 123 | styles = document.application.njUtils.stylesFromDraw(element, ~~drawData.width, ~~drawData.height, drawData); |
96 | 124 | ||
@@ -109,6 +137,24 @@ exports.TagTool = Montage.create(DrawingTool, { | |||
109 | // Add the element and styles | 137 | // Add the element and styles |
110 | this.application.ninja.elementMediator.addElements(element, styles); | 138 | this.application.ninja.elementMediator.addElements(element, styles); |
111 | } | 139 | } |
140 | }, | ||
141 | |||
142 | handleCanplay: { | ||
143 | value: function(event) { | ||
144 | //TODO: Figure out why the video must be seeked to the end before pausing | ||
145 | var time = Math.ceil(event.target.duration); | ||
146 | //Trying to display the last frame (doing minus 2 seconds if long video) | ||
147 | if (time > 2) { | ||
148 | event.target.currentTime = time - 2; | ||
149 | } else if (time > 1) { | ||
150 | event.target.currentTime = time - 1; | ||
151 | } else { | ||
152 | event.target.currentTime = time || 0; | ||
153 | } | ||
154 | //Pauing video | ||
155 | event.target.pause(); | ||
156 | } | ||
112 | } | 157 | } |
158 | |||
113 | }); | 159 | }); |
114 | 160 | ||