当前位置: 首页 > news >正文

丹阳网站建设制作wordpress搬家500

丹阳网站建设制作,wordpress搬家500,广州网站优化推广方案,布吉最新消息今天到目前为止#xff0c;尽管我的大多数文章都涉及JavaFX属性和绑定#xff0c;但今天我想写一讲我也致力于JavaFX运行时的另一部分#xff1a;动画API。 在本文中#xff0c;我将解释如何在JavaFX中编写自定义动画#xff0c;以及如何使用这种方法为Sprite动画创建类。 尽管我的大多数文章都涉及JavaFX属性和绑定但今天我想写一讲我也致力于JavaFX运行时的另一部分动画API。 在本文中我将解释如何在JavaFX中编写自定义动画以及如何使用这种方法为Sprite动画创建类。 这对我在33rd Conference上的会议来说也是一种好习惯。我计划在短短一个小时内用JavaFX编写一个游戏。这将很有趣 运动中的马 有很多非常好的文章介绍了预定义的过渡TranslateTransitionRotateTransition等和时间表。 在大多数情况下这些方法是足够的但在某些情况下只需要更大的灵活性即可。 这就是Transition类开始起作用的时候可以扩展该类以定义自定义动画。 要通过扩展Transition编写自己的动画类需要两个步骤 指定一个周期的持续时间 实现interpolate方法 一个周期的持续时间 您可以通过调用受保护的方法setCycleDuration来设置周期的持续时间。 在大多数情况下持续时间是固定的如果动画仅使用一次或可由用户配置。 JavaFX运行时中几乎所有预定义的转换都属于第二类。 他们通过duration属性公开了周期的持续时间您可能也想在您的课程中做到这一点。 在极少数情况下循环的持续时间取决于其他值。 例如SequentialTransition和ParallelTransition的持续时间取决于其子代的持续时间。 您可以随意更改循环持续时间但是请注意它不会影响当前正在运行的动画。 只有在动画停止并重新开始之后才考虑新的循环持续时间。 interpolate方法 interpolate方法是抽象的需要重写。 它定义了动画的实际行为。 播放动画时运行时在每帧中调用interpolate方法。 传入值frac0.0到1.0之间的双精度值包括两端值用于指定当前位置。 值0.0标记动画的开始值1.0标记动画的结束。 之间的任何值都定义相对位置。 请注意计算frac的值时已经考虑了可能的内插器。 类SpriteAnimation 为了演示如何定义自定义过渡我们将看一个允许我们制作Sprite动画的类。 它会拍摄具有几帧的图像然后将视口随时间从一帧移到另一帧。 我们将用Eadweard Muybridge着名的“运动中的马”测试这一节课。 聊够了这里是代码 package sandboxfx;import javafx.animation.Interpolator; import javafx.animation.Transition; import javafx.geometry.Rectangle2D; import javafx.scene.image.ImageView; import javafx.util.Duration;public class SpriteAnimation extends Transition {private final ImageView imageView;private final int count;private final int columns;private final int offsetX;private final int offsetY;private final int width;private final int height;private int lastIndex;public SpriteAnimation(ImageView imageView, Duration duration, int count, int columns,int offsetX, int offsetY,int width, int height) {this.imageView imageView;this.count count;this.columns columns;this.offsetX offsetX;this.offsetY offsetY;this.width width;this.height height;setCycleDuration(duration);setInterpolator(Interpolator.LINEAR);}protected void interpolate(double k) {final int index Math.min((int) Math.floor(k * count), count - 1);if (index ! lastIndex) {final int x (index % columns) * width offsetX;final int y (index / columns) * height offsetY;imageView.setViewport(new Rectangle2D(x, y, width, height));lastIndex index;}} } 清单1SpriteAnimation类 为了简单起见此示例类仅接受构造函数中的所有参数不允许以后更改它们。 在大多数情况下这就足够了。 该类需要一个ImageView一个周期的持续时间即遍历所有帧应花费的时间帧数列数图像中的一行中有多少帧第一帧的偏移量以及所有帧的宽度和高度。 通过调用setCycleDuration将整个周期的持续时间传递给超类并存储所有其他值。 作为构造函数的最后一步将内插器设置为线性。 默认情况下为所有过渡设置缓动插值器因为通常这会产生最佳效果。 但是在我们的例子中我们希望以相同的速度遍历所有帧并且缓和插值器看起来很奇怪。 interpolate方法采用传入的值并计算当前需要显示的帧。 如果自上次调用interpolate以来它发生了变化则将计算新帧的位置并相应地设置ImageView的视口。 而已。 运动中的马 为了演示SpriteAnimation类我们将对“运动中的马”进行动画处理。 做到这一点的代码很简单大部分工作已经完成。 它创建一个将视口设置为第一帧的ImageView并实例化SpriteAnimation类。 参数仅是估计值您可能需要对其进行一些调整。 package sandboxfx;import javafx.animation.Animation; import javafx.application.Application; import javafx.geometry.Rectangle2D; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.stage.Stage; import javafx.util.Duration;public class SandboxFX extends Application {private static final Image IMAGE new Image(http://upload.wikimedia.org/wikipedia/commons/7/73/The_Horse_in_Motion.jpg);private static final int COLUMNS 4;private static final int COUNT 10;private static final int OFFSET_X 18;private static final int OFFSET_Y 25;private static final int WIDTH 374;private static final int HEIGHT 243;public static void main(String[] args) {launch(args);}public void start(Stage primaryStage) {primaryStage.setTitle(The Horse in Motion);final ImageView imageView new ImageView(IMAGE);imageView.setViewport(new Rectangle2D(OFFSET_X, OFFSET_Y, WIDTH, HEIGHT));final Animation animation new SpriteAnimation(imageView,Duration.millis(1000),COUNT, COLUMNS,OFFSET_X, OFFSET_Y,WIDTH, HEIGHT);animation.setCycleCount(Animation.INDEFINITE);animation.play();primaryStage.setScene(new Scene(new Group(imageView)));primaryStage.show();} } 清单2JavaFX中的动静 结论 通过扩展Transition类来定义自己的动画非常简单。 但是这是一种非常强大的方法因为以这种方式创建的动画具有常规动画所具有的所有功能。 例如您可以通过更改速率来越来越慢地播放它甚至可以向后播放它。 您可以循环运行它也可以在ParallelTransition和SequentialTransition中使用它来创建更复杂的动画。 参考 JCG合作伙伴 Michael Heinrichs 使用JavaFX创建Sprite动画   在Mike的Blog上 。 翻译自: https://www.javacodegeeks.com/2012/03/javafx-creating-sprite-animation.html
http://www.yutouwan.com/news/173522/

相关文章:

  • 网站内容做淘宝店铺链接影响排名吗软件开发平台建设
  • 电商网站平台建设资金预算导视设计师
  • 深圳网站制作公司电话怎么看别人的网站有没有做301
  • 网站域名备案地址网站商城建设视频教程
  • 深圳市罗湖区网站建设网站建设推广熊掌号
  • 网站推广公司转型方向永久免费自助建站平台
  • 网站建设模板案例响应式wordpress 评论 头像
  • 化妆品网站建设平台的分析企业建站免费模板
  • 企业网页与网站区别网站建设企业号助手
  • 网站开发的职业规划室内设计师网名专用
  • wordpress音乐站源码高校网站建设需求分析
  • 中国铁路建设监理协会官方网站山东省建设厅网站特种作业
  • 网站不备案可以做淘宝联盟吗聊天软件开发需要多少钱
  • 黑龙江省住房和城乡建设网站用dw做的十二星座网站免费
  • 论坛网站建设开源工具网站服务器建设教程
  • 有什么字体设计网站济宁网站建设电话
  • wordpress开启子域名多站怎样在外管局网站做延期付款
  • 网站首页改版费用一个做网站的软件
  • 高端网站建设公司有必要做吗中国城乡建设经济研究所 网站
  • 增城营销网站建设生物医药基地网站建设
  • 枣阳网站建设公司做淘宝网站销售怎么样
  • 公司网站制作招聘.net做网站的优缺点
  • 群辉服务器建设的网站wordpress 怎么安全
  • 网站建设以推广哪个网站可以做c语言的题
  • 西充县住房和城乡建设局网站wordpress文章图片没src地址
  • 宁波江北建设局官方网站浏览器网站建设的步骤过程
  • 昆明公司网站开发徐州做网站建设
  • 免费企业名录搜索高清网站seo
  • 2016市网站建设总结西樵营销网站制作
  • 做网站有前途吗高性能网站建设在线阅读