From ca38cc20e7c8a689c4725e15a7fcc5efe4a008ca Mon Sep 17 00:00:00 2001 From: Marcin Kulik Date: Tue, 13 Mar 2012 21:36:35 +0100 Subject: [PATCH] Bind to events after movie is loaded --- app/assets/javascripts/player/movie.js.coffee | 4 +--- .../javascripts/player/player_view.js.coffee | 21 ++++++++++++------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/player/movie.js.coffee b/app/assets/javascripts/player/movie.js.coffee index e9f42f6..246e083 100644 --- a/app/assets/javascripts/player/movie.js.coffee +++ b/app/assets/javascripts/player/movie.js.coffee @@ -2,7 +2,7 @@ class AsciiIo.Movie MIN_DELAY: 0.01 SPEED: 1.0 - constructor: (@model, @autoPlay) -> + constructor: (@model) -> @reset() @startTimeReporter() _.extend(this, Backbone.Events) @@ -22,8 +22,6 @@ class AsciiIo.Movie @model.fetch success: => @trigger('movie-loaded', @model) - if @autoPlay - @play() timing: -> @model.get('stdout_timing_data') diff --git a/app/assets/javascripts/player/player_view.js.coffee b/app/assets/javascripts/player/player_view.js.coffee index d09ee83..769da9a 100644 --- a/app/assets/javascripts/player/player_view.js.coffee +++ b/app/assets/javascripts/player/player_view.js.coffee @@ -1,7 +1,8 @@ class AsciiIo.PlayerView extends Backbone.View initialize: (options) -> - @movie = new AsciiIo.Movie(@model, options.autoPlay) + @movie = new AsciiIo.Movie(@model) + @movie.on 'movie-loaded', @onMovieLoaded, this @movie.load() @terminalView = new AsciiIo.TerminalView( @@ -12,7 +13,6 @@ class AsciiIo.PlayerView extends Backbone.View @vt = new AsciiIo.VT(options.cols, options.lines, @terminalView) @createChildViews() - @bindEvents() createChildViews: -> @$el.append(@terminalView.$el) @@ -22,6 +22,17 @@ class AsciiIo.PlayerView extends Backbone.View @hudView = new AsciiIo.HudView() @$el.append(@hudView.$el) + onMovieLoaded: (asciicast) -> + @terminalView.hideLoadingIndicator() + @hudView.setDuration(asciicast.get('duration')) + + @bindEvents() + + if @options.autoPlay + @movie.play() + else + @terminalView.showToggleOverlay() + bindEvents: -> @terminalView.on 'terminal-click', => @movie.togglePlay() @@ -32,12 +43,6 @@ class AsciiIo.PlayerView extends Backbone.View @hudView.on 'hud-seek-click', (percent) => @movie.seek(percent) - @movie.on 'movie-loaded', (asciicast) => - @terminalView.hideLoadingIndicator() - @hudView.setDuration(asciicast.get('duration')) - unless @options.autoPlay - @terminalView.showToggleOverlay() - @movie.on 'movie-playback-paused', => @hudView.onPause()