- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个射击游戏,其中我需要通过将子弹绑定(bind)到“tick”事件来更新子弹的状态,但是当调用删除方法将它们从“tick”事件中删除时,它不会将其删除。创建新实例后,它会不断更新,而不是绑定(bind)的实例。
方法“add”/“remove”用于绑定(bind)/取消绑定(bind)“tick”事件的方法
class window.Stage
stage = undefined
counter = 0
fps = 60
add: (element) =>
element.id = counter++
stage.addChildAt(element.view, element.id)
element.listener = createjs.Ticker.on("tick", element.update)
remove: (element) =>
createjs.Ticker.off("tick", element.listener) # Not removing!
stage.removeChildAt(element.id)
update: () =>
stage.update()
这就是我在 Game 类中调用删除方法的方式
run: () =>
if @gun? && !@gun.alive
@stage.remove(@gun)
@gun = undefined
if @player.shooting() && !@gun?
@gun = @player.shoot() # Ticker keeps updating new instance
@stage.add(@gun)
for bunker in @bunkers
if @gun? && bunker.gotShot(@gun)
@gun.alive = false
这就是子弹的创建方式
class window.Player
shoot: =>
new Gun(@name, @x, @y - radius, false)
如果有任何教程可以更好地理解如何正确使用监听器,我们将非常感谢您提供链接,谢谢。
最佳答案
off()
方法要求您传递通过调用 on()
生成的方法闭包,而不是传递的原始方法。这是因为 on()
方法生成一个闭包来维护作用域 - 而 addEventListener
不会为您确定方法的作用域,需要您自己绑定(bind)它们,或者使用全局或匿名处理程序。
确保存放好封闭物,然后将其传递。我不熟悉你的示例中的语法,所以这里是一个普通的 JS 示例:
var listener = element.on("tick", handler, this);
element.off("tick", listener);
请注意,第三个参数是该方法应在其中调用的范围,如果您不传递它,它仍然会生成一个闭包,并在元素的范围内而不是匿名地触发它。 on()
方法还有一些其他不错的功能,例如“fire Once”和 event.remove()
功能。
如果您希望与 DOM 级别 3 事件相同的行为,则可以始终坚持使用 addEventListener/removeEventListener
方法。
关于javascript - CreateJS createjs.Ticker.off ("tick",element.update)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34543248/
如何在 createjs 中显示自定义光标?我在 Canvas 上渲染了多个图像/位图。我希望每当我单击特定位图时光标更改为特定图像。也就是说,单击图片 1 时,光标将变为画笔图像,单击图片 2 时,
我在 CreateJS/TweenJS 中有多个 Tweens: createjs.Tween.get(elem1).to({..}); createjs.Tween.get(elem2).to({.
我在 creatJS 方面遇到问题,希望您能提供帮助。 var stage = new createjs.Stage(canvas); 我收到此错误: angular.js:13642 Refere
我的项目是从服务器加载的。我使用 preloadjs 加载图像,然后使用它创建位图。加载图像后,可以使用以下命令创建位图新的createjs.Bitmap(路径);如果使用 firfox,但在使用 C
我正在制作一个射击游戏,其中我需要通过将子弹绑定(bind)到“tick”事件来更新子弹的状态,但是当调用删除方法将它们从“tick”事件中删除时,它不会将其删除。创建新实例后,它会不断更新,而不是绑
我试图将这个 h1 插入到 canvas 中。但它没有显示。无论如何,将 w3school html 集成到 Canvas 中,而无需使用 easeljs 程序创建文本。我将其添加到 Canvas 内
如何在createjs中仅在对象的右侧和底部绘制阴影。物体上或顶部和左侧没有阴影。 阴影仅包含 4 个参数 1.阴影的颜色 2. x 3. 年 4.模糊效果 但它没有说明 4 个不同的方面。 var
在 CreateJs 中,Firefox 呈现的文本对象的顶部位置与其他浏览器略有不同,而形状对象没有显示这种差异。 例如, this.text = new cjs.Text("Click to St
希望有人能帮忙。 我在 CreateJS 中有一个游戏工作正常,添加了暂停按钮的功能,也工作正常,除了暂停按钮不可见,但我的所有其他对象都是:(如果我单击我知道暂停按钮所在的位置该功能有效,但我只是看
我正在尝试使用 createjs 版本 8 中的新继承模型。我想让 Tile 继承自 createjs.Shape这是最基本的代码。 //This is the Tile constructor fu
这个问题已经有答案了: easeljs not showing bitmap (1 个回答) 已关闭 6 年前。 我怀疑答案就在 PreloadJs 中但是,我已经在我的 code 中删除了对它的修改
我正在使用这个 fiddle 中的代码: https://codepen.io/rauluranga/pen/KwoBdE 我想使用此代码使我的oes.container 中的每个对象都具有随机移动。
我正在开发一个 createjs 游戏,其中图像保存在容器内。我想将图像补间到屏幕上的某个位置并将图像切换到另一个图像。几秒钟后,我想从 Canvas /屏幕中删除新图像。 目前,我正在将 (evt)
我尝试将自己的方法添加到 Tween 类中以暂停/恢复所有补间。这就是我所拥有的: createjs.Tween.pauseAllTweens = function() { for ( var
这是图形: http://snag.gy/aVFGA.jpg 大矩形是 Canvas 元素,小矩形是 Canvas 中的图像对象。我想找到离左边的实际距离是多少。 值是我在控制台中看到的值: regX
我不知道我的代码有什么问题。我对 javascript 很陌生。有时 createjs 会工作,有时则不会。这没有意义,因为我正在从其他人的教程中复制精确的代码。
所以, 我刚开始学习 CreateJS,我遇到了我的第一个问题:我无法让补间工作(我希望它应该工作)。 示例如下:http://www.hakoniemi.net/labs/createjs-test
我想更改父容器内 2 个子容器的坐标。最初,我循环遍历父容器的子容器并单独更改它们的 x,y...但随后更改父容器的 x,y 更有意义>... 问题是...我需要获取每个子项的单独更改坐标...但是更
我尝试通过 SoundJS 声音注册加载声音,并收到以下错误: createjs.js:15 Uncaught Error: Type not recognized. 我认为 soundjs 库在定位
所以我尝试使用 Createjs 对矩形大小进行动画处理。我发现有两种方法可以创建矩形。要么: var rectangle = new createjs.Rectangle(0,0,100,100);
我是一名优秀的程序员,十分优秀!