【问题标题】:coffeescript Class咖啡脚本类
【发布时间】:2013-01-09 22:15:03
【问题描述】:

当我用新的 Kinetic.Stage 替换新的画廊时,代码可以正常工作 当我使用驱动类时,它不起作用。

为什么从 Kinetic.Stage 派生的画廊类型是错误的?

width = window.innerWidth   || document.documentElement.clientWidth || document.body.clientWidth || 0
height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0


class Gallery extends Kinetic.Stage
  constructor: (config) -> 
      super(config)



window.onload = -> 
  list_of_photos = jQuery('#_image img')
  x_pos = width/4
  y_pos = height/4
  stage = new Gallery
                container: "gallery_container"
                width: width
                height: height
  images_layer = new Kinetic.Layer()


  for image in list_of_photos
    imageObj = new Image()
    imageObj.src = image.src
    x_pos = x_pos + 100
    y_pos = y_pos + 10
    ori = new Kinetic.Image
                x: x_pos 
                y: y_pos
                image: imageObj
                draggable: true
                width: 200
                height: 200
    images_layer.add ori
  stage.add images_layer

【问题讨论】:

  • KineticJS 是一个 Javascript 库
  • 错误是TypeError: stage.add is not a function [Bei diesem Fehler anhalten] return stage.add(images_layer);
  • 我想知道的是方法 stage.add 不存在于画廊类中,而是存在于 Kinetic.Stage 中。

标签: javascript class inheritance coffeescript kineticjs


【解决方案1】:

问题 - Kineticjs 对象与咖啡脚本类不“兼容”。

解决 - 你必须使用其他方式调用“超级”

class Gallery extends Kinetic.Stage
    constructor : (config) ->
        Kinetic.Stage.call(@, config)

此处示例:http://jsfiddle.net/lavrton/w2EQD/4/

UPD:我发现这个问题只存在于“构造函数”方法中。其他人也可以:

class Gallery extends Kinetic.Stage
  constructor: (config) -> 
    Kinetic.Stage.call(@, config)
  add : (item) ->
    console.log(item)
    super item

【讨论】:

  • 好的,非常感谢您的帮助(作为咖啡和 js 新手,我没有机会找到它)。这让我想到是否还有其他不兼容的库。将 KineticJS 与 Coffeescript 一起使用是否更好,或者寻找替代方案更好。你怎么看 ? Tahnks 再次 Erhard
  • 使用 KineticJS 和 Coffescript 很好。我认为大部分库本身与咖啡脚本类不兼容。我在我的项目中使用 kineticjs 和咖啡。而且我不确定您是否需要“扩展”本机 lib 的对象。解决方法:程序样式或创建 Gallery 类并将 Stage 添加为成员。
猜你喜欢
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 2011-06-30
  • 2013-06-10
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多