JavaFx vs Flash vs Silverlight
这是一个很早以前就有的JavaFX、Flash、Silverlight应用速度对比测试,传到Blog上来做一个参考。不过,这个测试结果可信度并不太高,一是三者版本已经都提升了,二是原作者使用的JavaFX算法与Flash、Silverlight的不对等……
作者网站在此,里面有很多Flash、Silverlight的应用示例:http://www.shinedraw.com/
- Carousel [JavaFx 1.1] (399 KiB, 1,485 hits)
- FPS Meter [Flash 9, AS3] (129.9 KiB, 2,742 hits)
- FPS Meter [Silverlight 2, C#] (139.6 KiB, 2,851 hits)
JavaFx
Flash
Silverlight
作者的话:
开诚布公的说,我对于JavaFX没有什么好印象,我想这可能是以下原因造成的:
1、没有任何UI编辑工具,我总要与脚本打交道。如果只能用编码方式进行开发,那可就一点也不好玩了。
2、应用程序老是需要花费很长时间才能加载成功,我不知道为什么会这样,总之每次在IE中启动程序,都要过一小段才能显示出内容。
3、以JavaFX运行程序,不但需要.jar文件,还要去配置.jnlp。
4、我不知道哪些属性可以与特定对象相关联。
5、有些时候,调试器无法获得正确的错误位置。
6、JavaFx是一种全新的脚本,学习它需要很长时间。
7、当滚动页面时,JavaFX中可能会出现残像。
实际上,除此之外我还有一些不好的体验,就不一一列举了。
可能有人会说,JavaFX是一个相对较新的技术,这些都是很平常的问题,你需要耐心等待。我同意这一点,因此我将等待JavaFX的后续发展,然后再花时间学习它。
我还记得,Silverlight在它的第一版中也没什么吸引力。那么,JavaFX下面会怎么样呢?
————————————————————————————
另外,笔者自己再补充个LGame-Simple的实现:
package org.loon.test; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.geom.AffineTransform; import org.loon.framework.game.simple.GameScene; import org.loon.framework.game.simple.core.Deploy; import org.loon.framework.game.simple.core.LSystem; import org.loon.framework.game.simple.core.LTimerContext; import org.loon.framework.game.simple.core.Screen; import org.loon.framework.game.simple.utils.GraphicsUtils; /** * Copyright 2008 - 2009 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. * * @project loonframework * @author chenpeng * @email:ceponline@yahoo.com.cn * @version 0.1 */ public class FPS extends Screen { private final static int ycenter = 90; private final static int xcenter = 220; private final static double shift = Math.PI / 2; private double image_gap = Math.PI; private double angle; private double angle_rad = angle * Math.PI / 180; private int total; class Carousel { double x, y, scale; int width, height; Image image; public Carousel(String fileName) { this.image = GraphicsUtils.loadImage(fileName); this.width = image.getWidth(null); this.height = image.getHeight(null); } public void draw(Graphics2D g) { AffineTransform transform = new AffineTransform(); transform.translate(x, y); transform.scale(scale, scale); g.drawImage(image, transform, null); } public void update(double i, double angle) { scale = 0.8 + 0.5 * Math.sin(angle + i * image_gap + shift); x = Math.cos(angle + i * image_gap + shift) * xcenter + xcenter; y = Math.sin(angle + i * image_gap + shift) * ycenter + ycenter; } } private Carousel[] carousels = new Carousel[0]; public void alter(LTimerContext timer) { angle_rad = angle_rad + Math.PI / 60; for (int i = 0; i < total; i++) { carousels[i].update(i, angle_rad); } } public synchronized void addCarousel() { int index = total % 6; if (total == carousels.length) { carousels = (Carousel[]) LSystem.expand(carousels, (total + 1) * 5); } carousels[total++] = new Carousel("images/image" + index + ".png"); image_gap = Math.PI * 2 / total; } public void draw(Graphics2D g) { g.setColor(Color.white); g.drawString(("图片总数:" + total).intern(), 15, getHeight() - 25); for (int i = 0; i < total; i++) { carousels[i].draw(g); } } public void leftClick(MouseEvent e) { addCarousel(); } public void middleClick(MouseEvent e) { } public void rightClick(MouseEvent e) { } public void onKey(KeyEvent e) { } public void onKeyUp(KeyEvent e) { } public static void main(String[] args) { GameScene frame = new GameScene("LGame-Simple-FPS测试", 550, 400); Deploy deploy = frame.getDeploy(); deploy.setScreen(new FPS()); deploy.setShowFPS(true); deploy.setLogo(false); deploy.setFPS(100); deploy.mainLoop(); frame.showFrame(); } }
JavaFx vs Flash vs Silverlight相关推荐
- 强悍!使用Flash和Silverlight制作控件
Silverlight已经发布了正式版本,我也到网站下载了一个并看看,突然发现了他的例子中包含了这个公司. NETiKA TECH. 之所以说他强,是因为他尽然使用Flash和Silverlight制 ...
- 风云点评:Flash 与 Silverlight 终极大比拼
风云点评: 综合:综合比较来看,Flash在否些特性方面的确优于Silverlight,但是我们可以看到Silverlight3的SEO对搜索引擎非常友好,这为基于Silverlight技术的网络应用 ...
- 勒索软件指向Flash与Silverlight漏洞
本文讲的是 : 勒索软件指向Flash与Silverlight漏洞 , [IT168 资讯]随着Angler与其它多种漏洞工具包将Flash与Silverlight漏洞纳入清单,我们需要时刻关注 ...
- 从Flash到Silverlight进阶教程-用代码来创建动画
从Flash到Silverlight进阶教程 用代码来创建动画 这节里将要讲述一个自定义用户控件最基本的操作,就好象Flash中的MovieClips一样,动态的将其添加到舞台上. 首先你将要看到如何 ...
- java flash 开发_web开发相关技术概述(JavaScript, Flash, Java, Silverlight and ActiveX)
本文将介绍JavaScript的特别之处,为什么要使用JavaScript,以及web开发的其它相关技术的优缺点. 什么是JavaScript? JavaScript是一种脚本语言,为装饰网页而生.它 ...
- Silverlight、JavaFX、Flex技术比较
Techie在他最近写的一篇博客中,从定义.大小.应用平台.授权许可等方面深入比较了这几种技术的不同. Silverlight是一个跨浏览器和跨平台的插件,能在微软的.NET上交付炫目的多媒体体验和有 ...
- Silverlight vs Flash
Silverlight将打败Flash,是这样吗?可能会.许多人都告诉过我这一点,我开始怀疑他们的观点是否有一定的道理. 进行不到15分钟的搜索后,我确定Silverlight可能不会打败Flash, ...
- Silverlight与Flash的技术比较(图)
在以前的一篇 文章中我已经说明了Adobe和Microsoft在presentation layer的竞争关系.根据一些资料总结的功能,我针对Flash以及silverlight做了一个比较的图表,后 ...
- (译文)Flash,Silverlight,Win32:2011三大垂死平台
导读:即将过去的2011年见证了技术与行业的许多重大变迁,Flash.Silverlight.Win32三大拥趸众多的主流开发平台在Web和移动的挑战下危机重重.英国资深IT技术记者Tim Ander ...
最新文章
- Altium Designer PCB快速布局
- 程序员面试题精选100题(40)-扑克牌的顺子[算法]
- 疯狂.NET架构通用权限后台管理工具演示版2.0下载
- 最全的http头部信息分析(转载)
- DevOps组织IO专业人员新角色分析与技能提升
- java类作为多层级的数据实体_API json多层数据实体类封装(利用泛型技术)
- python mysqldb insert_python MySQLdb使用教程详解
- wrong ELF class: ELFCLASS64
- pythonATM,购物车项目实战_补充5-interface接口
- php小米官网,小米商城的首页
- pdf转换成word转换器注册码
- java报告模板_JAVA报告模板.doc
- ubuntu修改开机密码
- ping网络通不通、ttl讲解、查询ip归属地、tracert路由分析诊断
- window10 下载速度限制问题解决方案
- 在 360 度绩效评估中应该问的 20 个问题
- ZOJ 3939。规律题
- 易基因|RRBS单碱基绘制580种动物的基因组规模DNA甲基化谱:Nature子刊
- “警视”警务情指一体大屏可视化决策系统
- xml方式导出word优缺点: