summaryrefslogtreecommitdiff
path: root/assets/javascripts/mx/primitives/mx.video.js
blob: b48eff391b340fc7f258eea37af39c771e1e0084 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
MX.Video = MX.Object3D.extend({
  init: function (ops) {

	this.type = "Video"

    if (ops.src) this.loadTexture(ops)

    this.children.forEach(function (c, i) {
      if (ops.texture) {
      }
      else if (ops.classname) {
        c.el.classList.add(ops.classname)
      }
      else {
      }
      c.el.style.backgroundRepeat = 'no-repeat'
    })

    this.dirty = true
    this.updateChildren = true
    this.update()
  },

  loadTexture: function(ops){
    var layer = this
    var video = document.createElement('video')
    video.setAttribute("autoplay", "")
    video.setAttribute("loop", "")
    video.setAttribute("muted", "muted")
    video.addEventListener("loadedmetadata", function(){
      layer.width = video.videoWidth
      layer.height = video.videoHeight
      layer.x = ops.x || 0
      layer.y = ops.y || 0
      layer.z = ops.z || 0
      layer.scale = ops.scale || 1
      layer.el.appendChild(video)
      layer.el.classList.add('video')
      layer.dirty = true
      layer.update()
      minimap.update()
    })
    video.src = ops.src
    video.load()
  }

})