Posted October 31, 20222 yr Administrators Скачать: Релиз доступен только по запросу. Дата релиза: 31 октября 2022 Улучшения 🙌 TfgAssetsManager Методы TfgAssetBitmapSet.FindBitmap теперь возвращают ложь, если существует только информация об изображении без самого изображения (Bitmap = nil). TfgLottieImage Опубликовано свойство AutoPlay, позволяющее автоматически проигрывать анимацию. Исправление ошибок 🐛 FGX-222 Если первым символом в имени ресурса стоит цифра, то проект невозможно собрать с Assets.Consts. FGX-227 Параметр AOldOrientation в событии TfgForm.OnScreenOrientationChanged имеет некорректное значение (Android). FGX-230 При создании простого проекта с навигатором, при дальнейшем снятии приложения свайпом возникает следующая ошибка (iOS). FGX-231 FGX Native не работает в Delphi 11.0. FGX-228 Как загрузить файл по тегу <a href... /a> на html-странице в TfgWebBrowser (Android). Возможные падения и сбои при сохранении ресурсов, содержащих пустое изображение в AssetManager. При смене анимаций в TfgLottieImage они начинали проигрываться даже при AutoPlay = False.
October 31, 20222 yr 21 минуту назад, Yaroslav Brovin сказал: TfgAssetsManager Методы TfgAssetBitmapSet.FindBitmap теперь возвращают ложь, если существует только информация об изображении без самого изображения (Bitmap = nil). Ярослав, можете дать небольшой фрагмент кода, как это использовать?
October 31, 20222 yr Author Administrators С точки зрения вызова ничего не поменялось. TfgAssetBitmapSet по сути является контейнером изображений, предназначенных для разных коэффициентов масштабирования. Информация о каждом изображении представляется в виде структуры FGX.Assets.BitmapSet.TfgBitmapInfo. Так вот раньше могла быть ситуация, когда изображения физически нету для какого-то коэффициента, а информация присутствовала (как на скриншоте выше). Поэтому раньше метод FindBitmap смотрел только на наличие информации, а не на физическое наличие изображения и мог вернуть True при отсутствующем изображении. Сейчас же метод проверяет в том числе наличие битмапа. function TfgAssetBitmapSet.FindBitmap(out ABitmap: TfgBitmap): Boolean; var BitmapInfo: TfgBitmapInfo; begin ABitmap := nil; if FindBitmapInfo(BitmapInfo) then ABitmap := BitmapInfo.Bitmap; Result := ABitmap <> nil; end; Метод старый, поэтому есть две версии: /// <summary> /// Выполняет поиск наиболее подходящего под текущий скейл экрана изображение. Если изображение найдено, /// то оно возвращается в параметре <c>ABitmap</c> и в результате будет <c>True</c>, иначе вернется nil и /// <c>False</c>. /// </summary> function FindBitmap(out ABitmap: TfgBitmap): Boolean; overload; /// <summary> /// Выполняет поиск изображение для экрана со скейлом <c>AScale</c>. Если изображение найдено, /// то оно возвращается в параметре <c>ABitmap</c> и в результате будет <c>True</c>, иначе вернется nil и /// <c>False</c>. /// </summary> function FindBitmap(const AScale: Single; out ABitmap: TfgBitmap): Boolean; overload; Поиск битмапа нужного масштаба у ассета можно реализовать так: var Asset: TfgAssetBitmapSet; Bitmap: TfgBitmap; begin // Здесь код по получению ассета по имени или любым другим способом. ... // Пытаемся достать битмап if Asset.FindBitmap(Bitmap) then // Bitmap содержим экземпляр изображения else // Bitmap не найден