使用控制器参数 flutter 时 Flare Actor 突然消失
Flare Actor suddenly disappears when using controller parameter flutter
我尝试在我的应用程序中使用 flare 来设计一个带有进度条的评分屏幕,但我遇到了一个错误 "whenever I try to add controller parameter the flare suddenly disappears"。
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,
),
);
FlareRate 控制器 class 是
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(已注释谎言)
你的 Flare Actor 消失了,因为属性 "duration" return null
我找到了这个 rate app speed 代码并复制了,因为我需要有关代码的更多信息。这就是我发现的:
您的代码正在为您的 ActorAnimation 获取动画,例如 "Slide"。尝试更改 "Slide" 参数并设置 "slide"(小写的 s)
然后再次运行您的应用程序并告诉我您是否收到了它。
我尝试在我的应用程序中使用 flare 来设计一个带有进度条的评分屏幕,但我遇到了一个错误 "whenever I try to add controller parameter the flare suddenly disappears"。
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,
),
);
FlareRate 控制器 class 是
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(已注释谎言)
你的 Flare Actor 消失了,因为属性 "duration" return null
我找到了这个 rate app speed 代码并复制了,因为我需要有关代码的更多信息。这就是我发现的:
您的代码正在为您的 ActorAnimation 获取动画,例如 "Slide"。尝试更改 "Slide" 参数并设置 "slide"(小写的 s)
然后再次运行您的应用程序并告诉我您是否收到了它。