Jump to content

Recommended Posts

  • Administrators
Posted

Скачать:
Релиз доступен только по запросу.

Дата релиза:

31 октября 2022


Улучшения 🙌

TfgAssetsManager

Методы TfgAssetBitmapSet.FindBitmap теперь возвращают ложь, если существует только информация об изображении без самого изображения (Bitmap = nil). 

TfgLottieImage

Опубликовано свойство AutoPlay, позволяющее автоматически проигрывать анимацию.

Исправление ошибок 🐛

 

  • Like 2
  • Thanks 1
Posted
21 минуту назад, Yaroslav Brovin сказал:

TfgAssetsManager

Методы TfgAssetBitmapSet.FindBitmap теперь возвращают ложь, если существует только информация об изображении без самого изображения (Bitmap = nil). 

Ярослав, можете дать небольшой фрагмент кода, как это использовать?

  • Administrators
Posted

С точки зрения вызова ничего не поменялось. TfgAssetBitmapSet по сути является контейнером изображений, предназначенных для разных коэффициентов масштабирования.

image.png

Информация о каждом изображении представляется в виде структуры 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 не найден

 

  • Like 1
×
×
  • Create New...