我正在创建一个Air Desktop应用程序。我使用Flash Player 10,ActionScript 3.0从FLA编译了一个SWF文件。
我现在正尝试使用mxml通过FlashDevelop将SWF拉入我的桌面应用程序。
但是,每当我运行我的应用程序时,我的mxml运行正常,但SWF没有像我期望的那样导入;我收到一个空白的白色屏幕,虽然尺寸看起来是正确的。
这是我的mxml代码,我已经从FlashDevelop生成的默认代码中更改了:
<?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只是一个带按钮的背景图片,所以当我开始添加更多电影剪辑(如多个屏幕)时,我不确定这是否会成为一个问题......
由于
答案 0 :(得分:1)
您可能收到沙箱安全违规,使用 Flash Player调试程序检查实际的错误代码和消息。一些常见问题是:
正如@flextras建议的那样,您的应用未找到SWF
您没有使用正确的编译器参数编译应用程序或SWF以进行本地文件访问或AIR沙箱设置。例如,请检查Security sandbox violation on Air file和flex: loading local flash file以获取更多信息和一些可能的修复方法。
希望这有帮助!
答案 1 :(得分:0)
我发现我的问题与我的SWF文件有关。我所拥有的是我的场景中有一个影片剪辑,其中包含多层其他影片剪辑,因为我认为我可以通过它们的实例名称访问它们。当我删除这种嵌套方法时,编译器似乎很高兴。在最佳实践方面,我应该为我的应用程序的每个“页面”单独使用SWF,还是在flex中构建整个应用程序?感谢@ www.Flextras.com和@danii!