I've never used it, and I haven't had time to read the source code, but the
documentation suggests that you pass the item ID to `remove`.
CANVAS.layers.get('myLayer').remove(foo.id);
Yet, that didn't work either... So I searched the source code. It seems the
Layer.remove function has a bug in it. It doesn't pass the ID to the destroy
and erase methods, it passes the hard coded string 'id'.
On Mon, Sep 20, 2010 at 2:08 AM, shouvik <[email protected]> wrote:
> Hi All,
>
> I have asked this question before and it seemed that the code I was
> using was pretty confusing. So this is a virtually dumbed down version
> of the same code. I draw a square on the canvas using the add
> function. Likewise I should be able to remove the item from the canvas
> using the remove function! Alas, it doesn't seem to happen.
>
> Here is the code
>
> $(window).addEvent('load',function(){
>
>
> CANVAS.init({ canvasElement : 'canvas' });
> CANVAS.layers.add( new Layer({
> id : 'myLayer'
> }));
>
> var colors = [
> 'rgba(255,0,0,1)',
> ];
>
> var pos = [
> { x: 150, y : 100 },
> ]
>
> var foo = new CanvasItem({
> id : 'item',
> x : pos[0].x,
> y : pos[0].y,
> fillStyle : colors[0],
> events : {
> onDraw : function(ctx)
> {
> ctx.fillStyle = this.fillStyle;
> ctx.fillRect(this.x,this.y,200,200);
> }
> }
> });
>
> CANVAS.layers.get('myLayer').add(foo);
> CANVAS.draw();
> CANVAS.layers.get('myLayer').remove(foo);
> CANVAS.draw();
> });
>
> It can also be seen here is jsfiddle
> http://jsfiddle.net/WRRns/4/
> The library I am using to implement this is via mootools canvas
> library. Here is the link of the functions.
> http://forvar.de/js/mcl/docs.Layer.html#fn-remove
>
> Thanks