diff --git a/src/core/display/DisplayObject.js b/src/core/display/DisplayObject.js index 722c34a..9702b95 100644 --- a/src/core/display/DisplayObject.js +++ b/src/core/display/DisplayObject.js @@ -431,6 +431,23 @@ }; /** + * Set the parent Container of this DisplayObject + * + * @param container {Container} The Container to add this DisplayObject to + * @return {Container} The Container that this DisplayObject was added to + */ +DisplayObject.prototype.setParent = function (container) +{ + if (!container || !container.addChild) + { + throw new Error('setParent: Argument must be a Container'); + } + + container.addChild(this); + return container; +}; + +/** * Base destroy method for generic display objects * */ diff --git a/src/core/display/DisplayObject.js b/src/core/display/DisplayObject.js index 722c34a..9702b95 100644 --- a/src/core/display/DisplayObject.js +++ b/src/core/display/DisplayObject.js @@ -431,6 +431,23 @@ }; /** + * Set the parent Container of this DisplayObject + * + * @param container {Container} The Container to add this DisplayObject to + * @return {Container} The Container that this DisplayObject was added to + */ +DisplayObject.prototype.setParent = function (container) +{ + if (!container || !container.addChild) + { + throw new Error('setParent: Argument must be a Container'); + } + + container.addChild(this); + return container; +}; + +/** * Base destroy method for generic display objects * */ diff --git a/test/lib/pixi/display/DisplayObject.js b/test/lib/pixi/display/DisplayObject.js index 9ca495e..c1b8883 100644 --- a/test/lib/pixi/display/DisplayObject.js +++ b/test/lib/pixi/display/DisplayObject.js @@ -7,6 +7,7 @@ //expect(obj).to.respondTo('addFilter'); //expect(obj).to.respondTo('removeFilter'); expect(obj).to.respondTo('updateTransform'); + expect(obj).to.respondTo('setParent'); expect(obj).to.contain.property('position'); pixi_core_Point_confirm(obj.position, 0, 0); diff --git a/src/core/display/DisplayObject.js b/src/core/display/DisplayObject.js index 722c34a..9702b95 100644 --- a/src/core/display/DisplayObject.js +++ b/src/core/display/DisplayObject.js @@ -431,6 +431,23 @@ }; /** + * Set the parent Container of this DisplayObject + * + * @param container {Container} The Container to add this DisplayObject to + * @return {Container} The Container that this DisplayObject was added to + */ +DisplayObject.prototype.setParent = function (container) +{ + if (!container || !container.addChild) + { + throw new Error('setParent: Argument must be a Container'); + } + + container.addChild(this); + return container; +}; + +/** * Base destroy method for generic display objects * */ diff --git a/test/lib/pixi/display/DisplayObject.js b/test/lib/pixi/display/DisplayObject.js index 9ca495e..c1b8883 100644 --- a/test/lib/pixi/display/DisplayObject.js +++ b/test/lib/pixi/display/DisplayObject.js @@ -7,6 +7,7 @@ //expect(obj).to.respondTo('addFilter'); //expect(obj).to.respondTo('removeFilter'); expect(obj).to.respondTo('updateTransform'); + expect(obj).to.respondTo('setParent'); expect(obj).to.contain.property('position'); pixi_core_Point_confirm(obj.position, 0, 0); diff --git a/test/unit/core/display/DisplayObject.test.js b/test/unit/core/display/DisplayObject.test.js new file mode 100644 index 0000000..e2ee32d --- /dev/null +++ b/test/unit/core/display/DisplayObject.test.js @@ -0,0 +1,11 @@ +describe('PIXI.DisplayObject', function () { + it('should be able to add itself to a Container', function() { + var child = new PIXI.DisplayObject(), + container = new PIXI.Container(); + + expect(container.children.length).to.equal(0); + child.setParent(container); + expect(container.children.length).to.equal(1); + expect(child.parent).to.equal(container); + }); +});