Давайте предположим, что у меня есть 2 классов, которые похожи друг на друга:Ассоциирование спрайтов в контейнере - Pixi.js
//one class
function classA() {
var texture = PIXI.Texture.fromImage("someImage");
PIXI.extras.TilingSprite.call(this, texture, 224, 219);
this.position.x = 0;
this.position.y = 0;
this.tilePosition.x = 0;
this.tilePosition.y = 0;
}
classA.constructor = classA;
classA.prototype = Object.create(PIXI.extras.TilingSprite.prototype);
//another class
function classB() {
var texture = PIXI.Texture.fromImage("anotherImage");
PIXI.extras.TilingSprite.call(this, texture, 36, 42);
this.position.x = 0;
this.position.y = 0;
this.tilePosition.x = 0;
this.tilePosition.y = 0;
}
classB.constructor = classB;
classB.prototype = Object.create(PIXI.extras.TilingSprite.prototype);
В другом файле я создаю 1 экземпляр CLASSA и 3 из ClassB и добавить их все в контейнер:
container = new PIXI.Container();
renderer = PIXI.autoDetectRenderer(224, 219, {view:document.getElementById("some-canvas")});
a = new classA();
container.addChild(a);
b1 = new classB();
container.addChild(b1);
b2 = new classB();
container.addChild(b2);
b3 = new classB();
container.addChild(b3);
Я хотел связать каким-то образом ClassB к CLASSA, так что мне не нужно, чтобы создать 3 экземпляров ClassB каждый раз я создаю 1 экземпляр CLASSA (в других словах, я хотел бы выполните одну функцию addChild() для каждого экземпляра класса). Это возможно?
Хотя я не уверен, действительно ли я отвечаю на правильный вопрос в своем ответе. Поскольку я не понимаю утверждения: «так что мне не нужно создавать 3 экземпляра класса каждый раз, когда я создаю 1 экземпляр класса А». Поскольку, если вы делаете эту же операцию несколько раз, вы можете просто отделить ее от своей собственной функции. Но добавление конструктора addChild внутри imo. все еще плохой выбор ... Или вы можете сделать функцию addChildren, которая выполняет итерацию через массив и добавляет всех детей в данный контейнер. – Hachi