gpt4 book ai didi

javascript - Pixi.js 阶段父级

转载 作者:行者123 更新时间:2023-12-03 12:42:06 28 4
gpt4 key购买 nike

我有一个 JavaScript 图形对象。在这里面我有一个 pixi js 阶段作为私有(private)成员。在舞台上,我有一个 PIXI.Graphics() 对象,我将在其中保持两条垂直线。我在图形对象中有一些方法可以根据点击操作这些方法。

问题是:我将舞台设置为交互式,然后将 stage.mousedown 事件设置为函数,但是在这个函数中,我的 this 是舞台而不是我的 Graph 对象。我尝试访问父级,但它为空。我尝试在创建鼠标按下操作之前设置父级,方法如下:

this.stage.parent = this;
this.stage.mousedown = function(mouseData) {...}

但是 mousedown 操作永远不会被命中。有什么想法吗?

最佳答案

您需要在创建 mousedown 函数的同一作用域中创建一个变量。JS 函数会自动了解其父作用域中的变量。这可能是对父对象范围或您要调用的函数的引用。

function PixiObject() {

var stage,
renderer;

this.init = function() {
stage = new PIXI.Stage(0x000000, true);
renderer = PIXI.autoDetectRenderer(480, 320, null, false);
document.body.appendChild(renderer.view);

var onStageDownA = function() {
console.log('onStageDownA called');
};
this.onStageDownB = function() {
console.log('onStageDownB called');
};
var self = this;
stage.mousedown = stage.touchstart = function() {
console.log(this); // stage
console.log(self); // pixi object
onStageDownA(); // calls function
self.onStageDownB(); // calls function
};

update();
}

function update() {
requestAnimFrame(update);
renderer.render(stage);
}
}

window.onload = function() {
var p = new PixiObject();
p.init();
};

这是一个工作示例:

http://codepen.io/ianmcgregor/pen/eFEJv

关于javascript - Pixi.js 阶段父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23499917/

28 4 0
文章推荐: javascript - 无需设置 'ng-controller' 指令即可在父级中访问子级作用域
文章推荐: javascript - 如何在加载运行后使用 javascript 提供调用函数的选项
文章推荐: javascript - 使用 JS 变量更改多个页面上的特定
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com