我们正在开发一个基于 SVG 输入显示人体的应用程序。这个人体分为几个区域,比如头部、左臂、右臂、腹部等。
我们希望在用户点击例如一只手臂时突出显示图像的一个区域。在 Flutter 中实现这一目标的最佳方法是什么?
我们尝试将 Flare 用于 Flutter,但此库不提供与正在显示的人体的直接交互。
有没有更简单的方法:
GestureDetector;请注意,由于图像的部分重叠,简单的框将不起作用。可以看到我们想要达到的效果,我在这里点击了一只手臂。在它周围绘制一些可点击的框,效果不佳。
提前致谢。
我正在使用耀斑,但出现此错误,当我使用 CircularProgressIndicator() 时错误消失。
[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter ( 7668): PK
Run Code Online (Sandbox Code Playgroud)
这是代码:
import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_actor.dart';
class LoadingIndicator extends StatelessWidget {
Widget build(BuildContext context) {
return Center(
// child: CircularProgressIndicator(),
child: FlareActor(
"assets/loading_1.flr2d",
alignment: Alignment.center,
fit: BoxFit.contain,
animation: "loading",
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案
当我从2Dimensions 的 Explore 页面下载 Flare 图形时,我正在下载.flr2d文件。我猜这是一个项目领域。在耀斑中,您必须导出而不是下载。我已导出为二进制文件,并且输出文件具有.flr扩展名。感谢@Noob 帮助我找到答案。
我正在尝试使用Process.Start在默认浏览器中启动本地html文件.
示例网址如下:
"file:///C:/Documentation/HelpContent/default_CSH.htm#SectionA/Topic1.htm"
Run Code Online (Sandbox Code Playgroud)
问题是,"#SectionA/Topic1.htm"位由于某种原因被剥离,因此该信息不会传递给浏览器.但它确实适用于非本地URL.
有谁知道如何让这个工作或是某种预防性的安全问题?
谢谢
我们公司正在将我们的帮助系统迁移到 Flare 下的 HTML5 格式。我们还在 URI 命令行上使用 Flare CSHID 为帮助系统添加了基于主题的访问,以直接访问主题,例如index.html#CSHID=GettingStarted启动GettingStarted.html帮助页面。
我们的应用程序是用 C++ 编写的,并利用 Win32ShellExecute()函数生成与 HTTP 关联的默认应用程序以显示帮助系统。我们注意到,ShellExecute()当没有指定标签时,它可以正常工作,例如
ShellExecute(NULL, _T("open"), _T("c:\\Help\\index.html"), NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)
此函数将启动与查看 HTML 页面相关联的默认浏览器,在这种情况下,File:///协议处理程序将启动,浏览器将启动,您将file:///c:/Help/index.html在地址栏中看到。
但是,一旦添加了#该主题的信息,就ShellExecute()无法打开页面
ShellExecute(NULL,_T("open"),_T("c:\\Help\\index.html#cshid=GettingStarted"),NULL,NULL,SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)
如果浏览器完全打开,您将被定向到file:///c:/Help/index.htm没有#cshid=GettingStarted主题标识的l 。
请注意,这只是一个问题,如果 File 协议处理程序通过 参与ShellExecute(),如果帮助系统存在于网络上,并且 Http 或 Https 协议处理程序参与,一切正常。
对于我们的客户,其中一些在专用 LAN 上,我们不能总是依赖 Internet 访问,因此我们的帮助系统必须随应用程序一起提供。
我正在尝试找到一种方法将 Flare 动画(请参见此处的 Flare:https : //www.2dimensions.com/about-flare)导入到原生 Android 项目中。我做了很多研究,但我找不到任何方法来做到这一点。
这太糟糕了,因为 Flare 真的很棒,可以轻松创建动画。
你知道有什么方法可以进行出口吗?
我知道如何导出Rive (Flare) 文件以在 Flutter 应用程序中使用,但如何将Adobe After Effects文件导入Rive?
我知道可以使用Lottie,但我无法弄清楚如何准确地做到这一点。
更新:我在底部添加了一个 codesanbox,其中更详细地说明了我需要做什么。
所以我不太了解 React 中的类是如何工作的,我是 React 的新手并且使用过 useState 一点点,但从来不知道如何处理类。我正在使用这个 react 包,它有一个示例,说明如何使用控制器使您使用现在称为 rive 的flare 构建交互式动画。https://github.com/2d-inc/Flare-React#readme
我想要实现的是当我将鼠标悬停在生成的画布元素上时,要么运行不同的动画,要么再次运行相同的动画。我可以在 flate(rive) 中创建第二个动画,它仍然会在同一个 .flr 文件中输出,然后我应该能够在控制器中引用它并在悬停时运行它,只是坚持如何做那部分,或者甚至让这个控制器工作。需要注意的一件事是我可以让动画在没有控制器的情况下正常运行。
在文档中,他们有这个示例代码
class PenguinController extends FlareComponent.Controller
{
constructor()
{
super();
this._MusicWalk = null;
this._Walk = null;
this._WalkTime = 0;
}
initialize(artboard)
{
this._MusicWalk = artboard.getAnimation("music_walk");
this._Walk = artboard.getAnimation("walk");
}
advance(artboard, elapsed)
{
// advance the walk time
this._WalkTime += elapsed;
const { _MusicWalk: musicWalk, _Walk: walk, _WalkTime: walkTime } = this;
// mix the two animations together by applying …Run Code Online (Sandbox Code Playgroud) 我想在我自己的项目中添加lensflare,就像 http://threejs.org/examples/webgl_lensflares.html
但Chrome一直警告我"WebGL:INVALID_OPERATION:copyTexImage2D:framebuffer格式不兼容",镜头光斑不会出现.
我搜索了很多,但没有正确答案,请帮忙.
如何在每一帧刷新时间获得持久的刻度。例如,在 Flame 游戏引擎中,update大约每秒调用一次方法,并传递
1/60一个带有经过时间的值。
我想实现一个风扇旋转的简单动画。我想根据用户输入改变其旋转速度。我的想法是,在每次勾选时,我都会以固定值旋转风扇图像/容器。随着用户速度的提高,我将增加乘数。很少有像使用火焰引擎或耀斑这样的选择,但它们似乎有点过分了。另外,我可以使用,但有一些开销,例如完成后反转动画并转发它,所以...
我认为会有一个简单的解决方案,它将在大约每 1/60 发生的每个帧刷新时间通知我秒,然后将经过的时间传递给我(大约 167 毫秒左右)。dtSingleTickerProviderMixin
dt
我正在尝试在 Flutter 中重新播放 Flare 动画。动画完成后不循环播放。我想要一个动画按需播放,同样的动画。
当我在动画之间切换时,只需交换字符串并调用 setState 即可正常工作。有没有一种简单的方法可以做到这一点。
这就是我目前正在做的事情。
class _FlareDemoState extends State<FlareDemo> {
String animationToPlay = 'activate';
@override
Widget build(BuildContext context) {
print('Animation to play: $animationToPlay');
return Scaffold(
backgroundColor: Colors.purple,
body: GestureDetector(
onTap: () {
setState(() {
});
},
child: FlareActor('assets/button-animation.flr',
animation: animationToPlay)));
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击动画时我的日志结果
I/flutter (18959): Animation to play: activate
I/flutter (18959): Animation to play: activate
I/chatty (18959): uid=10088(com.example.flare_tutorial) Thread-2 identical 2 lines
I/flutter (18959): Animation to play: activate
I/flutter (18959): Animation to play: activate
I/chatty (18959): …Run Code Online (Sandbox Code Playgroud) 我刚刚为我的 flutter 小部件成功 flutter-flare
但我找不到将其用于背景(容器)的示例
这可能吗?