2

我正在创建一个 Air 桌面应用程序。我使用 Flash Player 10、ActionScript 3.0 从 FLA 编译了一个 SWF 文件。

我现在正试图通过 FlashDevelop 使用 mxml 将 SWF 拉入我的桌面应用程序。

但是,每当我运行我的应用程序时,我的 mxml 都会正确运行,但 SWF 没有像我预期的那样被导入;我收到一个空白屏幕,尽管尺寸似乎是正确的。

这是我从 FlashDevelop 生成的默认值更改的 mxml 代码:

<?xml version="1.0"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 

    <mx:SWFLoader width="950" height="500" source="..\..\..\bin\Gameseed.swf" /> 

</mx:Application>

原始代码(由 FlashDevelop 生成):

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/halo">

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>


</s:Application>

我在某处读到 SWFLoader 仅用于次要用户交互和动画;我的 SWF 只是一个带有按钮的背景图像,所以当我开始添加更多电影剪辑(例如多个屏幕)时,我不确定这是否会成为未来的问题......

谢谢

4

2 回答 2

1

您可能遇到了Sandbox Security Violation,请使用Flash Player 调试器检查实际的错误代码和消息。一些常见的问题是:

  • 正如@flextras 建议的那样,您的应用没有找到 SWF

  • 您没有使用正确的编译器参数编译应用程序或 SWF 以进行本地文件访问或 AIR 沙盒设置。例如,检查Air file和flex: loading local flash file上的安全沙箱违规以获取更多信息和一些可能的修复。

希望这可以帮助!

于 2013-03-02T20:12:17.880 回答
0

我发现我的问题与我的 SWF 文件有关。我所拥有的是我的场景中有一个影片剪辑,其中包含多层进一步的影片剪辑,因为我认为我可以通过它们的实例名称访问它们。当我删除这种嵌套方法时,编译器似乎很高兴。就最佳实践而言,我应该为我的应用程序的每个“页面”设置一个单独的 SWF,还是在 flex 中构建整个应用程序?感谢@www.Flextras.com 和@danii!

于 2013-03-03T19:21:22.903 回答