Mimic — Изменение параметров в редакторе

Стартовая страница Форумы Понять, как работает ПО Мнемосхемы Mimic — Изменение параметров в редакторе

Просмотр 15 сообщений - с 16 по 30 (из 43 всего)
  • Автор
    Сообщения
  • #42201
    manjey73
    Участник

    При чем в консоли видно, что значения второго и следующих экземпляров не моргают, то есть на них нет воздействия скрипта, но значения они получили из настроек fp

    #42241
    Mikhail
    Модератор

    По поводу масштабирования — интересует:
    1 — Это возможно? Да/Нет
    2. Когда-то будет сделано?

    1. Да.
    2. Возможно, но не точно.

    #42242
    Mikhail
    Модератор

    Судя по скринам с консолью выше, скрипт отрабатывает в секции domCreated.
    дальше я не понимаю, да и не особо хочу, так как это явно где-то вглубине происходящего.

    Если нужно отладить скрипт компонента, сделайте в нём вывод в консоль console.log("text"); Информация будет выводиться на вкладку Console инструментов разработчика. Не увидел подобного скриншота.

    #42250
    manjey73
    Участник

    Михаил, мне кажется вы так и не поняли.

    arg.component.propertiеs не должен брать данные из одного места, отрисовывать в других местах, при этом не затрагивать другие места от слова совсем.

    Еще РАЗ и ВНИМАТЕЛЬНЕЕ — я меняю свойства только ОДНОГО компонента (экземпляра) — МЕНЯЮТСЯ ВСЕ ОСТАЛЬНЫЕ.

    то есть ошибка где-то на лицо….

    #42251
    manjey73
    Участник
    class extends ComponentScript {
    
      domCreated(args) {
      const fon1 = args.component.properties.fon;
      const str1 = args.component.properties.stroke;
      args.component.dom.find("#bodyvn").attr("fill", fon1);
      args.component.dom.find("#bodyvn").attr("stroke", str1);
      args.component.dom.find("#l1").attr("stroke", str1);      
      args.component.dom.find("#l2").attr("stroke", str1); 
      }
    
      domUpdated(args) { 
        const fon1 = args.component.properties.fon;
        const str1 = args.component.properties.stroke;
        args.component.dom.find("#bodyvn").attr("fill", fon1);
        args.component.dom.find("#bodyvn").attr("stroke", str1);
        args.component.dom.find("#l1").attr("stroke", str1);      
        args.component.dom.find("#l2").attr("stroke", str1); 
      }
    
      dataUpdated(args) {
      const fon1 = args.component.properties.fon;
      const str1 = args.component.properties.stroke;
      args.component.dom.find("#bodyvn").attr("fill", fon1);
      args.component.dom.find("#bodyvn").attr("stroke", str1);
      args.component.dom.find("#l1").attr("stroke", str1);      
      args.component.dom.find("#l2").attr("stroke", str1); 
      } 
     }

    найдите 10 отличий называется. — мнемосхему вы видите, дал ссылку на 176. и далее

    #42258
    manjey73
    Участник

    оставил только domCreated — все 4 элемента одним цветом…. и зимой и летом 🙂

    #42259
    manjey73
    Участник

    <div id=»comp49-1″

    но при этом, если посмотреть сюда — то цвета там те, которые назначены именно 4-му экземпляру этого фейсплейта, то ест скрипт domCreated работает правильно.
    Но потом кто-то, все 4-ре экземпляра выкрасил в те цвета, которые назначены первому экземпляру.

    Так что проблема не у меня, даже если скрипт не совсем красивый.

    #42261
    manjey73
    Участник

    Как-то связано с id элементов в svg, я вчера делал дубль, и не поменял id=»vn» если не ошибаюсь, все остальное сменил для проверки, и имена свойств и id остального.
    И эффект был интересным.

    При чем тут id элементов, если речь о разных экземплярах не понимаю.

    #42283
    Mikhail
    Модератор

    Уже писал ранее, что id элемента HTML или SVG доложен быть уникальным в рамках веб-страницы. Если данное правило не соблюдается, то нормально работать не будет.

    #42286
    manjey73
    Участник

    так дело в том, что id не у SVG, а у группы, внутри svg
    <g id=»ff»

    и этот id используется командой <use в этом svg

    Без этой штуки не будет работать отображение элементов в SVG

    Какое тогда решение можно применить для фейсплейта? если даже у групп в svg нельзя использовать id?

    При этом если посмотреть на svg всех выставленных экземпляров фейсплейта, скрипт domCreated выполняется правильно, он всем расставил разные цвета, которые я прописал в экспортируемых свойствах.

    • Ответ изменён 3 месяца, 3 недели назад пользователем manjey73.
    #42288
    manjey73
    Участник

    Ну если так будет понятнее. Скрипт вроде отрабатывает по каждому экземпляру, а отображение происходит только первого для всех.

    #42294
    manjey73
    Участник

    Аааааа, утренние мысли 🙂
    Возможно это сама команда use в svg находит только первый и пакостит.
    Но почему тогда в консоли видно, что скрипт на обновлении отрабатывает только на первом экземпляре, а не как domCreated на всех по отдельности?
    Моргать то изменения переменных тоже должны везде?

    #42295
    manjey73
    Участник

    з.ы. и все равно, Баба Яга против 🙂

    Не должен себя на web странице так вести svg, все, что обернуто тегами <svg> изолировано, так как одну и туже картинку можно применять многократно на странице, меняя стили. А команда use и id групп не меняется при этом.

    Вопрос как это протестировать?, потому что я ни в зуб ногой в отладке в браузере.

    #42296
    manjey73
    Участник

    В общем нужно, чтобы редактор умел это

    С помощью JavaScript
    Использовать JavaScript для изменения идентификаторов. Например, если в SVG есть идентификаторы, которые конфликтуют, можно изменить их перед добавлением SVG на страницу.

    а плагин должен потом подумать, как это разрулить.
    Без этого сам смысл faceplate теряется, имеется ввиду их экземпляры.

    #42297
    manjey73
    Участник

    мда уж, оказывается это серьезная проблема, с этими id. А в svg не только use используется, но еще и url

Просмотр 15 сообщений - с 16 по 30 (из 43 всего)
  • Для ответа в этой теме необходимо авторизоваться.