codecombat/app/views/home_view.coffee

73 lines
2.1 KiB
CoffeeScript
Raw Normal View History

2014-01-03 13:32:13 -05:00
View = require 'views/kinds/RootView'
template = require 'templates/home'
WizardSprite = require 'lib/surface/WizardSprite'
ThangType = require 'models/ThangType'
module.exports = class HomeView extends View
id: 'home-view'
template: template
events:
2014-01-06 21:12:57 -05:00
'mouseover #beginner-campaign': 'onMouseOverButton'
'mouseout #beginner-campaign': 'onMouseOutButton'
2014-01-03 13:32:13 -05:00
getRenderData: ->
c = super()
if $.browser
majorVersion = parseInt($.browser.version.split('.')[0])
c.isOldBrowser = true if $.browser.mozilla && majorVersion < 21
c.isOldBrowser = true if $.browser.chrome && majorVersion < 17
c.isOldBrowser = true if $.browser.safari && majorVersion < 536
else
console.warn 'no more jquery browser version...'
c
afterRender: ->
super()
@$el.find('.modal').on 'shown', ->
$('input:visible:first', @).focus()
wizOriginal = "52a00d55cf1818f2be00000b"
url = "/db/thang_type/#{wizOriginal}/version"
@wizardType = new ThangType()
@wizardType.url = -> url
@wizardType.fetch()
@wizardType.once 'sync', @initCanvas
initCanvas: =>
@stage = new createjs.Stage($('#beginner-campaign canvas', @$el)[0])
@createWizard -10, 2, 2.6
@turnOnStageUpdates()
turnOnStageUpdates: ->
@interval = setInterval(@updateStage, 40) unless @interval
createWizard: (x=0, y=0, scale=1.0) ->
spriteOptions = thangID: "Beginner Wizard", resolutionFactor: scale
@wizardSprite = new WizardSprite @wizardType, spriteOptions
@wizardSprite.update()
wizardDisplayObject = @wizardSprite.displayObject
wizardDisplayObject.x = 50
wizardDisplayObject.y = 85
wizardDisplayObject.scaleX = wizardDisplayObject.scaleY = scale
@stage.addChild wizardDisplayObject
@stage.update()
2014-01-06 21:12:57 -05:00
onMouseOverButton: ->
@wizardSprite.queueAction 'cast'
onMouseOutButton: ->
@wizardSprite.queueAction 'idle'
2014-01-03 13:32:13 -05:00
updateStage: =>
@stage.update()
willDisappear: ->
super()
clearInterval(@interval) if @interval
@interval = null
didReappear: ->
super()
@turnOnStageUpdates()