【问题标题】:Flare Actor suddenly disappears when using controller parameter flutter使用控制器参数flutter时Flare Actor突然消失
【发布时间】:2020-09-26 19:43:19
【问题描述】:

我尝试在我的应用程序中使用flare 来设计一个带有进度条的评分屏幕,但我遇到了一个错误“每当我尝试添加控制器参数时,flare 就会突然消失”并出现错误。

getter 'duration' 在 null 上被调用。

接收者:空

尝试调用:持续时间

我在下面附上了所需的代码

  FlareRateController _flareController;

void updateDragPosition(Offset offset) {
    setState(() {
      _dragPercent = (offset.dx / sliderWidth).clamp(0.0, 1.0);
      _flareController.updatePercent(_dragPercent);
    });
  }

void initState() {
    super.initState();
    _flareController = FlareRateController();
    SystemChrome.setEnabledSystemUIOverlays([]);
  }

_buildFlareActor() => SizedBox(
        width: 1100.w,
        height: 680.h,
        child: FlareActor(
          "assets/rate.flr",
          artboard: "Artboard",
          controller: _flareController,
        ),
      );

FlareRatecontroller 类是

class FlareRateController extends FlareController {
  FlutterActorArtboard _artboard;
  ActorAnimation _rateAnimation;

  double _slidePercent = 0.0;
  double _currentSlide = 0.0;
  double _smoothTime = 5;

  void updatePercent(double val) {
    _slidePercent = val;
  }

  @override
  void initialize(FlutterActorArtboard artboard) {
    if (artboard.name.compareTo("Artboard") == 0) {
      _artboard = artboard;
      _rateAnimation = artboard.getAnimation("Slide");
    }
  }

  @override
  bool advance(FlutterActorArtboard artboard, double elapsed) {
    if (artboard.name.compareTo("Artboard") == 0) {
      _currentSlide += (_slidePercent - _currentSlide) *
          math.min(
            1,
            elapsed * _smoothTime,
          );
      _rateAnimation.apply(
          _currentSlide * _rateAnimation.duration, artboard, 1); //error here in duration
    }
    return true;
  }

  @override
  void setViewTransform(Mat2D viewTransform) {
    // TODO: implement setViewTransform
  }
}

错误在 _rateAnimation.duration 中(已经评论过谎言)

【问题讨论】:

    标签: flutter flutter-animation flare


    【解决方案1】:

    你的 Flare Actor 消失了,因为属性“duration”返回 null

    我找到了这个速率应用程序速度代码并复制,因为我需要有关代码的更多信息。这就是我发现的:

    您的代码正在为您的 ActorAnimation 获取动画,例如“Slide”。尝试更改“Slide”参数并设置“slide”(s 小写)

    然后再次运行您的应用程序并告诉我您是否得到它。

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 2014-10-24
      相关资源
      最近更新 更多