Ну, я думаю, проблема в том, что он создает объект эффекта внутри функции.Как только эта функция будет оставлена, я думаю, что у объекта canvas нет ссылки на объект эффекта, и GarbageCollection очищает ее.Попробуйте явно сохранить ссылку на объект эффекта.