Haxe项目仅显示空白的Flash播放器

Haxe项目仅显示空白的Flash播放器,flash,haxe,haxeflixel,Flash,Haxe,Haxeflixel,我正在开始使用Haxe。在完成所有的设置之后,我应该准备好开始了,但是当我运行任何项目时,它会打开一个带有空白屏幕的Flash播放器。没有预加载程序,没有文本,只有Project.xml中指定的任何颜色的屏幕 我花了一天的时间寻找解决办法,但还没有找到运气 我仔细检查了一下,确保一切都是最新的 我已经从多个IDE和命令行运行了这个项目 我试过运行自己的项目、演示、HelloWorld等 其他Flash项目运行良好。我只是对Haxe项目有这个问题 一切都会产生相同的结果:一个空白的Flash播

我正在开始使用Haxe。在完成所有的设置之后,我应该准备好开始了,但是当我运行任何项目时,它会打开一个带有空白屏幕的Flash播放器。没有预加载程序,没有文本,只有Project.xml中指定的任何颜色的屏幕

我花了一天的时间寻找解决办法,但还没有找到运气

  • 我仔细检查了一下,确保一切都是最新的

  • 我已经从多个IDE和命令行运行了这个项目

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

  • 其他Flash项目运行良好。我只是对Haxe项目有这个问题

一切都会产生相同的结果:一个空白的Flash播放器

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

下面是Project.xml:

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


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

听起来您正在使用FlashDevelop

您可以发布Project.xml和所有.hxml构建文件的内容吗

您可能希望使用自己的compile.hxml文件,因为这将 允许您使用更多编译选项。为了实现这一目标,我们必须努力 项目->属性->启用“无输出”。这将完全 禁用编译。然后进入build->pre-build命令行 并插入“path\to\haxe\haxe.exe”“path\tohxml\compile.hxml”。点击 好啊无论何时编译、测试或运行,FlashDevelop都将使用hxml 文件您甚至可以在FlashDevelop中编辑hxml文件


如果您使用的是普通和旧版本的Flash player,而不是调试器版本,则可能会出现一个空白的Flash player窗口。如果有任何例外,你将看不到它

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


检查最新版本,并确保您正在下载适用于您的操作系统的投影仪内容调试器。导致此问题的原因有两个:

  • 使用不正确的Flash播放器进行FlashDevelop
  • FlashDevelop对FlashPlayer的调用传递了一个“/c”命令行参数,FlashPlayer投影仪独立播放器不喜欢这个参数
  • 以下是如何使其工作:

  • 从下载Flash Player投影仪内容调试器。确保获取调试器的版本。这可能有点令人困惑;在我下载时,它的链接上写着“适用于与Netscape兼容的浏览器”,尽管它是一个独立的可执行文件。我下载的文件名为flashplayer_14_sa_debug.exe。把这个文件放在方便的地方

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

  • 在FlashDevelop中,我们现在将告诉它使用play.bat作为其Flash播放器。从工具菜单中,选择程序设置…,然后选择插件下的FlashViewer项目。在窗格右侧,单击外部播放机路径的路径区域,然后单击省略号(…)按钮浏览播放机。找到在上述步骤中创建的play.bat文件,然后单击打开按钮。然后关闭对话框


  • 现在,您应该能够从FlashDevelop进行播放和调试。关键是使用<强>播放.BAT 来取出Flash开发尝试传递给Flash播放器的“/C”选项,这是导致空白屏幕的原因。

    将项目.xml添加到OP中。您使用Flash开发对我是正确的。这可能接近解决方案。我的Flash Player是最新的,但当我尝试运行我的Haxe项目时,它正在打开Flash Player 10。非常棒的说明,但遗憾的是它仍然在打开Flash Player10@user3717754是否将外部播放器路径设置为指向“play.bat”文件?然后,如果将“play.bat”重命名为“foo.bat”,会发生什么?你用的是什么版本的FlashDevelop?是的,我把它设置为play.bat。如果我将其重命名为foo.bat并重新启动程序,则设置中的字段为空。如果我构建并运行,它会打开Flash Player 10。我正在使用FlashDevelop 4.6.2.5当FlashPlayer 10启动时,打开任务管理器,转到“流程”选项卡,看看是否可以找到FlashPlayer的条目。如果您找到它,右键单击它并选择“属性”。然后您应该能够看到Flash Player可执行文件的路径(靠近“位置”)。知道这个Flash播放器住在哪里会很有趣,也许有线索,但重命名或移动那个可执行文件可能更有趣…:-)C:\ProgramFiles(x86)\Adobe\Adobe Flash CS4\Player。可执行文件是FlashPlayer.exe。
    <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)-->
    
    @"%~dp0flashplayer_14_sa_debug.exe" "%2"