Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Flash过渡_Java_Flash_Actionscript 3_3d_Actionscript 2 - Fatal编程技术网

Java 从Flash过渡

Java 从Flash过渡,java,flash,actionscript-3,3d,actionscript-2,Java,Flash,Actionscript 3,3d,Actionscript 2,我用Flash创建全屏交互式演示,最近一直在寻找迁移到一种新的语言。我的Flash演示基本上是软件原型,在浏览器之外的投影仪EXE中运行。我想离开Flash的原因有很多,包括: Flash播放器的质量控制不佳 nVidia和ATI上的硬件加速问题导致可重复的BSOD 对文件系统、网络的低级访问不足 在寻找新平台时,我需要能够满足以下要求: 跨平台(仅Mac和PC) 基于100%图形(32位透明PNG)的用户界面 全屏独占模式(如果可能,可以调整用户的屏幕分辨率) 高质量媒体播放 H.26

我用Flash创建全屏交互式演示,最近一直在寻找迁移到一种新的语言。我的Flash演示基本上是软件原型,在浏览器之外的投影仪EXE中运行。我想离开Flash的原因有很多,包括:

  • Flash播放器的质量控制不佳
  • nVidia和ATI上的硬件加速问题导致可重复的BSOD
  • 对文件系统、网络的低级访问不足
在寻找新平台时,我需要能够满足以下要求:

  • 跨平台(仅Mac和PC)
  • 基于100%图形(32位透明PNG)的用户界面
  • 全屏独占模式(如果可能,可以调整用户的屏幕分辨率)
  • 高质量媒体播放
    • H.264/AAC MPEG-4视频高达1920x1080
    • WAV和MP3音频
  • 基本UI组件-滚动条、文本字段等(最好是可蒙皮/可扩展的)
  • 3D功能
如果您能就语言、框架、书籍、网站等方面提出建议,我将不胜感激。与C/C++相比,我对Java的知识更为渊博,因此如果您能在这里看到更多建议,我将不胜感激。

  • 基于100%图形(32位透明PNG)的用户界面-我不确定在用户界面中混合使用PNG是什么意思?你的意思是他们必须有PNG质量吗?PNG是一种图像格式,不是渲染层
  • 全屏独占模式(如果可能,可以调整用户的屏幕分辨率)

根据这些要求,您几乎被各种语言的编译可执行文件所困扰。

Flash的传统竞争对手是。

我不得不说,您要么需要看看Silverlight(我不知道它是否能满足您的需要,因为我认为它还不能实现3D)或者某种形式的OpenGL图形引擎。

您可以将普通Java与类似JOGL/LWJGL的OpenGL绑定一起使用,但在媒体播放方面会遇到问题。我认为它提供了很多媒体播放支持以及OpenGL加速,所有这些都封装在一个漂亮的Java框架中。如果您需要跨平台支持,那么尝试为每种平台风格获取适当的库将是一件痛苦的事情。如果您只需要windows,JavaFX可能非常可行

我认为最好的答案是您对Java的熟悉程度。Processing用于创建许多演示和尖端图形应用程序。处理是用Java构建的,但有一种非常易于使用的专有语言,您也可以使用纯Java。我不知道它是否有一个特定的小部件库,但可以肯定的是,它很容易自己构建。查看一些,看看它的功能和灵活性

要获得真正的跨平台速度和硬件访问,您可以查看以下内容。SDL是一个用于演示和游戏的跨平台库。它具有2d和3d支持以及设备访问。它将在Windows、Linux、Mac和无数其他硬件和软件上运行。它是用C编写的,可以很容易地跨平台,但是如果你正在寻找不同的东西,你可以对C++进行代码编写或者使用python、java或Ruby的绑定。我不相信SDL没有内置的widget库,但在他们的网站上,有很多都在下面列出

另一个选择是诺基亚最近购买的跨平台小部件库。诺基亚是一个奇怪的拥有者,但图书馆是根据许可证,它提供一切你需要的。我不熟悉在Qt下构建图形化的演示,但是他们的文档使它听起来是可行的

还用于演示和尖端图形及硬件应用。开放框架是用C++编写的,对于经验不足的开发者来说不是那么容易。它没有特定的小部件库,并且仍然处于alpha发布状态。我还没有深入研究openFrameworks,但它更先进,适合于标记的高级应用程序。

听起来非常适合您的需要

我绝对推荐使用WPF。我是Flash的超级粉丝,但这听起来确实像是你没有为正确的工作使用正确的工具

WPF就像Silverlight的老大哥(更强壮、更聪明、更好看)。如果您想创建在Windows上运行的EXE,为什么不使用Microsoft平台来创建它呢。对我来说似乎很聪明

当Silverlight瞄准web并将您限制在沙箱中时,WPF允许您自由地做您想做的事情。您基本上可以在.net中执行任何操作,但Silverlight只使用.net framework的一个子集

WPF也是完全硬件加速的,可以很好地处理大型视频。当然,你必须确保你的视频编码正确,因为有些视频太大了,无法在大多数电脑上播放


唯一的问题是它只在Windows上运行。但是我不确定是否有办法解决这个问题。

也许是一个解决方案,您仍然可以使用/应用您的Flash/Actionscript技能,为Windows和OSX创建专用的可执行文件,而这些文件没有普通Flash投影仪所具有的相同限制。

如果硬件为1280x720,则在运行视频时,您的Flash电影会导致BSODATI Radeon HD 3400系列支持加速,是的。Adobe指责ATI,ATI反过来指责Adobe。我受够了。哇,你在运行一些高强度的Flash东西。是的——我显然也触及了一些界限。我的意思是,我不会使用任何组件或系统浏览器来创建UI。一位图形艺术家创建了一组PNG图像,这些图像被放在一起组成UI。啊,是的,我认为Silverlight可能是下一个最好的东西。I+1是盲目的,但如果你通过Silverlight获得了屏幕分辨率控制或更重要的文件系统控制,我会非常惊讶