Стартовая страница › Форумы › Понять, как работает ПО › Мнемосхемы › Mimic — Изменение параметров в редакторе
- В этой теме 42 ответа, 3 участника, последнее обновление 3 месяца, 2 недели назад сделано
manjey73.
-
АвторСообщения
-
03.03.2026 в 09:06 #42201
manjey73УчастникПри чем в консоли видно, что значения второго и следующих экземпляров не моргают, то есть на них нет воздействия скрипта, но значения они получили из настроек fp
03.03.2026 в 15:19 #42241
MikhailМодераторПо поводу масштабирования — интересует:
1 — Это возможно? Да/Нет
2. Когда-то будет сделано?1. Да.
2. Возможно, но не точно.03.03.2026 в 15:24 #42242
MikhailМодераторСудя по скринам с консолью выше, скрипт отрабатывает в секции domCreated.
дальше я не понимаю, да и не особо хочу, так как это явно где-то вглубине происходящего.Если нужно отладить скрипт компонента, сделайте в нём вывод в консоль
console.log("text");Информация будет выводиться на вкладку Console инструментов разработчика. Не увидел подобного скриншота.03.03.2026 в 16:33 #42250
manjey73УчастникМихаил, мне кажется вы так и не поняли.
arg.component.propertiеs не должен брать данные из одного места, отрисовывать в других местах, при этом не затрагивать другие места от слова совсем.
Еще РАЗ и ВНИМАТЕЛЬНЕЕ — я меняю свойства только ОДНОГО компонента (экземпляра) — МЕНЯЮТСЯ ВСЕ ОСТАЛЬНЫЕ.
то есть ошибка где-то на лицо….
03.03.2026 в 16:35 #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. и далее
03.03.2026 в 22:50 #42258
manjey73Участникоставил только domCreated — все 4 элемента одним цветом…. и зимой и летом 🙂
03.03.2026 в 22:58 #42259
manjey73Участник<div id=»comp49-1″
но при этом, если посмотреть сюда — то цвета там те, которые назначены именно 4-му экземпляру этого фейсплейта, то ест скрипт domCreated работает правильно.
Но потом кто-то, все 4-ре экземпляра выкрасил в те цвета, которые назначены первому экземпляру.Так что проблема не у меня, даже если скрипт не совсем красивый.
04.03.2026 в 06:30 #42261
manjey73УчастникКак-то связано с id элементов в svg, я вчера делал дубль, и не поменял id=»vn» если не ошибаюсь, все остальное сменил для проверки, и имена свойств и id остального.
И эффект был интересным.При чем тут id элементов, если речь о разных экземплярах не понимаю.
04.03.2026 в 16:23 #42283
MikhailМодераторУже писал ранее, что id элемента HTML или SVG доложен быть уникальным в рамках веб-страницы. Если данное правило не соблюдается, то нормально работать не будет.
04.03.2026 в 16:32 #42286
manjey73Участниктак дело в том, что id не у SVG, а у группы, внутри svg
<g id=»ff»и этот id используется командой <use в этом svg
Без этой штуки не будет работать отображение элементов в SVG
Какое тогда решение можно применить для фейсплейта? если даже у групп в svg нельзя использовать id?
При этом если посмотреть на svg всех выставленных экземпляров фейсплейта, скрипт domCreated выполняется правильно, он всем расставил разные цвета, которые я прописал в экспортируемых свойствах.
-
Ответ изменён 3 месяца, 3 недели назад пользователем
manjey73.
04.03.2026 в 16:46 #42288
manjey73УчастникНу если так будет понятнее. Скрипт вроде отрабатывает по каждому экземпляру, а отображение происходит только первого для всех.
05.03.2026 в 06:43 #42294
manjey73УчастникАааааа, утренние мысли 🙂
Возможно это сама команда use в svg находит только первый и пакостит.
Но почему тогда в консоли видно, что скрипт на обновлении отрабатывает только на первом экземпляре, а не как domCreated на всех по отдельности?
Моргать то изменения переменных тоже должны везде?05.03.2026 в 08:34 #42295
manjey73Участникз.ы. и все равно, Баба Яга против 🙂
Не должен себя на web странице так вести svg, все, что обернуто тегами <svg> изолировано, так как одну и туже картинку можно применять многократно на странице, меняя стили. А команда use и id групп не меняется при этом.
Вопрос как это протестировать?, потому что я ни в зуб ногой в отладке в браузере.
05.03.2026 в 09:17 #42296
manjey73УчастникВ общем нужно, чтобы редактор умел это
С помощью JavaScript
Использовать JavaScript для изменения идентификаторов. Например, если в SVG есть идентификаторы, которые конфликтуют, можно изменить их перед добавлением SVG на страницу.а плагин должен потом подумать, как это разрулить.
Без этого сам смысл faceplate теряется, имеется ввиду их экземпляры.05.03.2026 в 09:52 #42297
manjey73Участникмда уж, оказывается это серьезная проблема, с этими id. А в svg не только use используется, но еще и url
-
Ответ изменён 3 месяца, 3 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.