2

我开始使用 Haxe。完成所有设置后,我应该已经准备就绪,但是当我运行任何项目时,它会打开一个空白屏幕的 Flash Player。没有预加载器,没有文本,只有 Project.xml 中指定的任何颜色的屏幕。

我花了一天时间寻找解决方案,但还没有运气。

  • 我已经仔细检查以确保一切都是最新的。

  • 我已经从多个 IDE 和命令行运行该项目。

  • 我尝试过运行我自己的项目、演示、HelloWorld 等。

  • 其他 Flash 项目运行良好。我只在 Haxe 项目中遇到这个问题。

一切都产生相同的结果:一个空白的 Flash Player。

花了这么多时间寻找解决方案,我几乎可以肯定它一定是我忽略的非常愚蠢的东西。

这是 Project.xml:

<?xml version="1.0" encoding="utf-8"?>

<app title="HelloWorld" file="HelloWorld" main="Main" version="0.0.1" company="HaxeFlixel" />

<!--The flixel preloader is not accurate in Chrome. You can use it regularly if you embed the swf into a html file
<!--or you can set the actual size of your file manually at "FlxPreloaderBase-onUpdate-bytesTotal"!-->
<app preloader="flixel.system.FlxPreloader" />

<!--Minimum without FLX_NO_GAMEPAD: 11.8, without FLX_NO_NATIVE_CURSOR: 11.2 -->
<set name="SWF_VERSION" value="11.8" />

<!--------------------------------WINDOW SETTINGS------------------------------->

<!--These window settings apply to all targets-->
<window width="640" height="480" fps="60" background="#000000" hardware="true" vsync="true" />

<!--Web-specific-->
<window if="web" orientation="portrait"  />

<!--Desktop-specific-->
<window if="desktop" orientation="landscape" fullscreen="false" resizable="true" />

<!--Mobile-specific-->
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" />

<!--------------------------------PATHS SETTINGS-------------------------------->

<set name="BUILD_DIR" value="export" />
<classpath name="source" />
<assets path="assets" />

<!--------------------------------LIBRARIES------------------------------------->

<haxelib name="flixel"/>

<!--In case you want to use the addons package-->
<!--haxelib name="flixel-addons" /-->

<!--In case you want to use the ui package-->
<!--haxelib name="flixel-ui"/-->

<!--In case you want to use nape with flixel-->
<!--haxelib name="nape" /-->

<!--------------------------------HAXEDEFINES----------------------------------->

<!--Enable the Flixel core recording system-->
<!--haxedef name="FLX_RECORD" /-->

<!--Disable the right and middle mouse buttons-->
<!--haxedef name="FLX_NO_MOUSE_ADVANCED" /-->

<!--Disable the Native cursor api for Flash target-->
<!--haxedef name="FLX_NO_NATIVE_CURSOR" /-->

<!--Optimise inputs, be careful you will get null errors if you don't use conditionals in your game-->
<!--haxedef name="FLX_NO_MOUSE" if="mobile" /-->
<!--haxedef name="FLX_NO_KEYBOARD" if="mobile" /-->
<!--haxedef name="FLX_NO_TOUCH" if="desktop" /-->
<!--haxedef name="FLX_NO_GAMEPAD" /-->

<!--Disable the Flixel core sound tray-->
<!--haxedef name="FLX_NO_SOUND_TRAY" /-->

<!--Disable the Flixel sound management code-->
<!--haxedef name="FLX_NO_SOUND_SYSTEM" /-->

<!--Disable the Flixel core focus lost screen-->
<!--haxedef name="FLX_NO_FOCUS_LOST_SCREEN" /-->

<!--Disable the Flixel core debugger. Automatically gets set whenever you compile in release mode!-->
<haxedef name="FLX_NO_DEBUG" unless="debug" />

<!--Enable this for Nape release builds for a serious peformance improvement-->
<haxedef name="NAPE_RELEASE_BUILD" unless="debug" />

<!--------------------------------CUSTOM---------------------------------------->

<!--Place custom nodes like icons here (higher priority to override the HaxeFlixel icon)-->

修复: Windows 为 .swf 文件提供了不同的默认播放器。我将其更改为正确的版本,一切正常。

4

3 回答 3

0

如果您使用的是 Flash Player 的正常和旧版本而不是调试器版本,则可能会出现空白的 Flash 播放器窗口。如果有任何异常,您将看不到它。

检查您的 Flash Player 版本并确保您也在使用调试器版本。它必须是 11.8+ 才能支持游戏手柄、本机光标等。

检查此页面以获取最新版本,并确保您正在为您的操作系统下载投影仪内容调试器

于 2014-06-17T21:45:46.540 回答
0

听起来您正在使用 FlashDevelop。

您可以发布您的 Project.xml 的内容以及您拥有的任何 .hxml 构建文件吗?

您可能想要使用自己的 compile.hxml 文件,因为这将允许您使用更多的编译选项。为了实现这一点,请转到项目 -> 属性 -> 启用“无输出”。这将完全禁用编译。然后只需转到 build -> pre-build 命令行并插入“path\to\haxe\haxe.exe”“path\tohxml\compile.hxml”。单击确定。每当您编译、测试或运行时,FlashDevelop 都会使用您的 hxml 文件。您甚至可以在 FlashDevelop 中编辑您的 hxml 文件。

于 2014-06-08T05:13:51.290 回答
0

造成这种情况的原因有以下几点:

  1. 使用不正确的 Flash 播放器进行 FlashDevelop。
  2. FlashDevelop 对 Flash 播放器的调用传递了 Flash Player Projector 独立播放器不喜欢的“/c”命令行参数。

以下是如何使其工作:

  1. 从https://www.adobe.com/support/flashplayer/downloads.html下载 Flash Player Projector 内容调试器。请务必获取调试器版本。这可能有点令人困惑;在我下载的时候,即使它是一个独立的可执行文件,它也是“用于与 Netscape 兼容的浏览器”的链接。我下载的文件名为flashplayer_14_sa_debug.exe。将此文件放在方便的位置。

  2. 在存储调试播放器的同一位置,创建一个名为play.bat的新批处理文件,并使其内容如下所示。如果您的名称与flashplayer_14_sa_debug.exe不同(后面的部分%~dp0),请输入正确的 Flash Player Projector 可执行文件名称:

    @"%~dp0flashplayer_14_sa_debug.exe" "%2"
    
  3. 在 FlashDevelop 中,我们现在将告诉它使用play.bat作为其 Flash 播放器。从Tools菜单中,选择Program settings...,然后选择Plugins下的FlashViewer项。在窗格的右侧,单击外部播放器路径的路径区域,然后单击省略号 (...) 按钮以浏览播放器。找到您在上述步骤中创建的play.bat文件,然后单击“打开”按钮。然后关闭对话框。

FlashViewer 设置页面

您现在应该能够从 FlashDevelop 播放和调试。关键是使用play.bat 去掉FlashDevelop 试图传递给 Flash Player 的“/c”选项,这就是导致空白屏幕的原因。

于 2014-06-27T17:51:50.803 回答