【问题标题】:Haxe projects only shows blank Flash PlayerHaxe 项目仅显示空白 Flash Player
【发布时间】:2014-06-07 12:28:24
【问题描述】:

我开始使用 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 文件提供了不同的默认播放器。我将其更改为正确的版本,一切正常。

【问题讨论】:

    标签: flash haxe haxeflixel


    【解决方案1】:

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

    1. 使用不正确的 Flash 播放器进行 Flash 开发。
    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 播放器。从工具菜单中,选择程序设置...,然后选择插件下的FlashViewer项。在窗格的右侧,单击外部播放器路径的路径区域,然后单击省略号 (...) 按钮以浏览播放器。找到您在上述步骤中创建的 play.bat 文件,然后单击 打开 按钮。然后关闭对话框。

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

    【讨论】:

    • 很棒的说明,但遗憾的是它仍在打开 Flash Player 10
    • @user3717754 您将外部播放器路径设置为指向“play.bat”文件?然后,如果将“play.bat”重命名为“foo.bat”会发生什么?您使用的是什么版本的 FlashDevelop?
    • 是的,我将它设置为 play.bat。如果我将其重命名为 foo.bat 并重新启动程序,则该字段在设置中为空。如果我仍然构建并运行,它会打开 Flash Player 10。我使用的是 FlashDevelop 4.6.2.5
    • Flash Player 10 启动后,打开任务管理器,转到进程选项卡,查看是否可以找到 Flash Player 的条目。如果找到它,请右键单击它并选择“属性”。然后,您应该能够看到 Flash Player 可执行文件的路径(与“位置”相邻)。知道这个 Flash Player 的位置会很有趣,也许那里有线索,但重命名或移动该可执行文件可能会更有趣...... :-)
    • C:\Program Files (x86)\Adobe\Adobe Flash CS4\Players。可执行文件是 FlashPlayer.exe。
    【解决方案2】:

    听起来您正在使用 FlashDevelop。

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

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

    【讨论】:

    • 将 Project.xml 添加到 OP。你对我使用 FlashDevelop 的看法是正确的。
    【解决方案3】:

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

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

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

    【讨论】:

    • 这可能接近解决方案。我的 Flash Player 是最新的,但是当我尝试运行我的 Haxe 项目时,它正在打开 Flash Player 10。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2015-07-28
    相关资源
    最近更新 更多