Pixi.js: BitmapText .textWidth правильно только после рендеринга?

Созданный на 13 дек. 2016  ·  4Комментарии  ·  Источник: pixijs/pixi.js

После установки свойства .text для BitmapText, .textWidth будет некорректным до тех пор, пока не будет выполнен рендеринг. Пришлось использовать requestAnimationFrame () для ожидания при выполнении вычислений повторного позиционирования. Это ожидаемое поведение?

💾 v4.x (Legacy) 📢 Accepting PRs 🕷 Bug

Все 4 Комментарий

Эээ, это ожидаемое поведение прямо сейчас, потому что это то, что делает код, но мы можем сделать его лучше;)

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

Обычный класс Text, например, гарантирует, что когда вы попытаетесь получить его ширину, он обновит текст вне цикла визуализации, чтобы убедиться, что возвращаемое значение является точным и актуальным. BitmapText этого не делает (но должен).

Пока создается исправление, вы можете вызвать .updateText () для объекта перед запросом .textWidth. Это должно дать вам точные измерения, не дожидаясь rAF.

исправление заключалось бы в том, чтобы сделать текущий .textWidth частным ._textWidth, создать метод получения только для чтения с именем .textWidth, который вызывает .validate () перед возвратом ._textWidth;

для получателя .width (и height), я считаю, что он должен вызвать .updateTransform () перед возвратом ширины

.validate - это то, что я искал. Спасибо :). Я добавлю + pr сегодня вечером, если у меня будет возможность.

Этот поток был автоматически заблокирован, так как после его закрытия в последнее время не было никаких действий. Пожалуйста, откройте новую проблему для связанных ошибок.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги