Как повторно использовать объекты canvas с помощью fabric js, переключаясь на разные приложения

#javascript #html5-canvas #fabricjs

#javascript #html5-canvas #fabricjs

Вопрос:

Я могу отлично рисовать фигуры на холсте. Но мой вариант использования заключается в том, что в моем интерфейсном интерфейсе есть нижняя навигация. Значит, я должен показать пример

  • tab1 -> прямоугольник, строка
  • tab2-> строка
  • tab3-> rect
  • поэтому, если я переключусь на tab2, я покажу, что были нарисованы только связанные с tab2 фигуры.
  • Если я переключусь на tab3, я должен показать, что были нарисованы только связанные с tab3 фигуры. и т.д.

То, что я сделал, было ,

   var objects = this.getCanvasObjects();
          var clonedObjs = Array.from(objects);

   
 

вышеупомянутые «объекты» содержали все фигуры tab1, tab2 и т. Д

  this.removeAllCanvasObjects(); 
 

Поскольку я скопировал целые объекты canvasobjects в clonedObjs, я удаляю все объекты.

// Я поставил некоторые пользовательские tabId перед рисованием фигуры

   clonedObjs.foreach((value,index)=>{
    if(value["tabId"]==currId){
               // i will draw what ever the shape it may be .
                   drawRect;
           }
   })
 

но при вышеуказанном подходе фоновый объект canvas удаляется, поскольку я удаляю все объекты canvas перед тем, как приступить к рисованию.

Но как я могу повторно использовать объекты canvas, переключаясь между вкладками. Любые ответы приветствуются.

Комментарии:

1. Это неправильный способ задать вопрос о переполнении стека. Вопрос носит общий характер и не полностью связан с кодом. Итак, почему у вас не может быть холста для каждой вкладки?

2. @AndreaBogazzi спасибо за ответ . Конечно, я улучшу свои навыки опроса в stackoverflow. Возвращаясь к вашему вопросу, в пользовательском интерфейсе есть только один холст, внизу у нас есть вкладки. поэтому , если я нарисую любую фигуру на холсте , которая связана с tab1 , и если я переключусь на tab2 , любая фигура , которую я нарисовал , связанная с tab1 , должна быть удалена . Если я снова переключусь на tab1 , мне придется показать, какую фигуру я когда-либо рисовал на tab1. то же самое будет применимо для остальных вкладок.

3. Я предполагаю, что у вас есть 3 холста, и при размещении вкладок вы скрываете / показываете относительный холст вкладки.