问题标签 [nme]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mobile - Haxe、as3hx、NME、Apache FlexJS - 将 Flash Builder Flex 项目转换为 HTML5+Js
过去曾使用 Flash Builder 4.6 创建一些移动应用程序。创建的应用程序仅在高端手机型号上运行良好,但运行速度也比原生应用程序慢。特别是当应用程序正在“启动”时,应用程序完全加载需要一段时间。我知道为什么这会更慢,因为 AIR 是一个额外的应用程序层,可以将其转换为本机。
让我告诉你我的观点。我知道开发非原生软件比原生软件慢。在某些情况下,您需要原生(用于速度、图形等),但大多数时候它并不重要(不需要软件的所有部分都直接使用硬件)。我想要实现的目标是通过开发一次并能够将其移植到多个平台(如果需要)来降低开发成本。我理解为什么有这么多语言,在我看来这只是因为他们喜欢这种语言,想要带来新的东西,因为它是新的,或者将开发人员绑定到特定的平台(商业原因)。事实上,硬件类型或运行方式并没有太大差异,所以当它没有带来任何新事物时,为什么要投资于“新”事物。我想开发持久的代码,而不是绑定到平台炒作或趋势。例如,当您投资为特定平台(例如 Window Mobile)编写代码时,这些天您的代码毫无用处。尤其是在移动世界中,事情可能会迅速变化。
反正最近发现了Haxe的存在,不知道这个存在。听起来很有希望,使用一种语言(类似 AS)并将其移植到另一种语言。一个非常有趣的事情是可以将它移植到 Javascript 并使用它,例如结合 phonegap 来创建移动应用程序,或者能够在不需要闪存的情况下在网站上使用它,或者将它嵌入到 VM 的可执行文件中叫尼科。他们声称它生成的代码比原始的 Adobe 框架更快。我可以想象它更快,因为 Haxe 的所有元素都非常快。
然后我找到了 NME(也不知道有这个),这似乎是基于 Haxe 和 Neko,为不同平台创建移动应用程序,包括 Javascript 和 HTML5。这给了我将 flex 项目移植到 NME 的想法,以摆脱对 Adobe AIR 的要求,也许可以更快地执行并使用相同的代码获得更多可能性。
然后我找到了 as3hx 和一些关于 Apache FlexJS(以前称为 Adobe FalconJS)的信息。as3hx 将 ActionScript 代码转换为 Haxe 代码,FlexJS 将 AS+XML 转换为不可编辑的 HTML5+Javascript 代码。我更喜欢 as3hx 因为扩展的可能性,但不知道如何在转换后实现项目(最终只得到一些 hx 文件)。没有尝试过 FlexJS,因为它似乎是实验性的(不是官方的),并且需要使用更新的 Apache Flex Framework 4.9 更新 Adobe Flex 框架。我犹豫是否要更新 Flash Builder 中的框架,因为我意识到我可能会搞砸原始设置。
在继续此过程之前,我有几个问题:
- 真的可以将(复杂/巨大的)弹性项目转换为 NME 吗?
- 使用 as3hx 转换 flex 项目后我必须做什么才能使其作为项目运行(以便能够在 NME 中编译它)。
- 有人尝试过 FlexJS 方法并且值得吗?
供您参考,一些导致这些问题的资源:
- Haxe:http ://haxe.org
- as3hx:http ://caffeine-hx.googlecode.com/svn/trunk/projects/as3hx
- NME:http ://www.nme.io
- FalconJS:http: //blogs.adobe.com/bparadie/2011/11/19/what-is-falconjs/
- FlexJS:https ://cwiki.apache.org/FLEX/flexjs-status.html
非常感谢您的任何意见,如果您需要一些额外的信息,请给我留言。
compiler-errors - NME 中的目标 - 演示项目无法转换为例如 JavaScript - 目标错误
我正在玩有趣的工具 NME,它是 Haxe 和 Neko 的组合。
我喜欢可以针对不同语言的想法,但这似乎不对?
我已经下载了示例并在以 NME 为目标时完美运行,但是当我选择另一个目标(例如 Javascript)时,我收到以下错误(在 FlashDevelop 中):
您无法使用当前编译标志访问 flash 包(对于 flash.display.Sprite)
如果这真的不可能,那么该工具对我来说没有意义,因为当您无法瞄准另一个目标时为什么要使用它。还是我在整个 Haxe/NME 故事中遗漏了什么?有人可以向我解释一下吗?
windows - Haxe - 部署到 Windows 时舞台上的对象不显示
我正在使用 Haxe/nme 和 Flash Develope 将 Flash 游戏移植到多个平台。我所有的导入库都来自 NME。该程序以 Flash 为目标编译并运行良好。但是当我以 Windows 为目标时,程序编译并运行,甚至音乐开始播放,但我看到的只是一个空白窗口。
舞台上的所有物品都不见了。没有错误,一切似乎都可以完美编译/运行,除了没有对象出现?
我需要做一些特别的事情来使对象显示为 windows 目标吗?
html - 构建 haxe nme 项目的 html5 版本时出现问题
我尝试构建nme-runnermark的 html5 画布版本,但没有取得任何重大成功。flash 版本构建没有任何问题。我收到以下一堆错误:
我注意到自从我将nme升级到3.5.5版本后,这些问题就开始出现了。这不仅发生在 nme-runnermark 上,而且通常发生在我尝试构建 html5 版本的几乎所有 nme 项目中。我的下一个尝试是摆脱当前版本的 nme,并尝试使用旧版本。
无论如何,我想知道是否有其他人遇到类似的问题
android - 带有 Android 目标的 Haxe NME 项目无法部署:Activity 类不存在
我在 FlashDevelop 中创建了一个 NME 项目,在 Main.hx 中我加载了一个位图,然后单击以 android 为目标的构建按钮。构建成功完成,但随后出现以下错误:
但是 Activity 确实存在:
AndroidManifest.xml 的内容:
NME 应该开箱即用地在 Android 上运行,我没有做任何可能破坏它的关键操作。
ios - 从 iOS 应用程序运行 Haxe – hxRunLibrary() 错误
对于一个客户,我开发了一个用于用户界面的iOS + Android
应用程序。Cordova (PhoneGap)
现在,作为这个应用程序的更新,我正在尝试添加一个用 Haxe 编写的游戏。Flash target
最初游戏是C++
为Android and iOS
.
在 Android 上,使用活动很容易将其与Cordova
应用程序集成(Haxe 部分作为单独的活动运行),但我在 iOS 上实现类似结果时遇到了一些麻烦。
到目前为止,我已尝试将所有hxcpp
生成的代码包含在我的项目中(与 NME 在您执行“nme build ios”时设置 XCode 项目的方式相同),并且hxRunLibrary()
当我希望游戏运行时从我的代码中调用.
问题是它hxRunLibrary()
似乎想要创建自己的UIApplication
实例,但由于我的主应用程序已经在运行一个实例而失败并出现以下错误:
我认为这可能与 Haxe 用于图形的 SDL 有关。据我了解,SDL 需要从应用程序的主函数运行,这与 Cocoa 发生冲突,也需要从主函数运行。
有什么简单的方法可以解决这个问题吗?我查看了 hxcpp 源代码,但找不到UIApplication
相关代码或 SDL 的任何入口代码。
也许有人可以指出我正确的方向。谢谢!
android - 在 Haxe NME 中使用蓝牙
我打算使用 Haxe NME 开发一个简单的蓝牙聊天应用程序。
是否可以在 Haxe 中使用特定于设备的原生 API?或者是否有一些包装类可用于使用蓝牙?
bitmap - 如何使 haxe nme 预加载器渲染具有透明度的位图
我想在预加载器的背景上显示带有 alpha 通道的图像,用于带有 haxe nme 的闪存目标。当涉及到预加载器时,这种需求似乎很常见。
我找到了几种可能的方法来做到这一点,但其中任何一个都没有运气。由于我创建了一个继承默认 NMEPreloader 的自定义 Preloader 类,因此我所有的跟踪和错误都在这个类中。
方法 #1 - nme.Assets 方法 - 运行时错误
我尝试调用Assets.loadBitmapData("assets/img/miniMoon.png")
Preloader 的构造函数。运行时发生错误:
使用调用堆栈:
我想知道 nme.Assets 类是否可以在预加载期间使用。
Method #2 Embed in Flash Way - 不透明渲染
通过使用嵌入不是 NME 的青睐,我已经尝试过这个:
它只是运行,但显示的图像不透明,所有具有 alpha 0 的像素都在背景下呈现为白色。
作为进一步的测试,我使用moon.alpha = 0.5;
then I can see through the image。所以这可能是在嵌入 nme 期间丢失 alpha 通道值的问题。
带有小动画或小游戏的预加载器会很有趣。我希望有一个解决方案。谢谢!
haxe - 如何使用 NME 和 Haxe 定位 HTML5?
我使用以下行创建了 NME 附带的简单 NyanCat 示例项目(纯粹作为示例!):
我可以将(目标)编译为 Flash,它可以使用以下行:
但是当我对 HTML5 尝试相同的操作时,使用以下行:
文件按预期创建,出现浏览器,但显示一个简单的灰色框(见图)。Firebug 建议图像中的灰色框是不透明度设置为“1”的 Canvas 对象。在这个对象的上方和下方还有一个画布对象。
通过萤火虫检查一切都是链接的(脚本文件在那里)。我试过 Chrome 和 Firefox。
c++ - 在 Haxe NME 中找不到 CPP 目标的 RTTI 属性
我在 haxe nme 中使用 rtti。它在以 flash 为目标时运行良好,但在编译为 cpp 目标时我收到以下错误。
错误 C2039:“__rtti”:不是“Class_obj”的成员
我正在做这个...
我也试过...
我应该怎么办?