【发布时间】:2013-03-02 19:18:25
【问题描述】:
我正在创建一个 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 只是一个带有按钮的背景图像,所以我不确定将来当我开始添加更多电影剪辑(例如多个屏幕)时这是否会成为问题...
谢谢
【问题讨论】:
-
您确定Gameseed.swf 的源目录正确吗? Gameseed.swf 相对于主应用程序的安装目录在哪里? (或者如果您正在调试,则使用 bin-debug 目录)。如果您使用完整的文件路径,它是否有效?如果您使用像“file://C:/something/something/bin/Gameseed.swf”这样的文件 URL,它是否有效?
-
我的 Main.mxml 位于我的 src 文件夹下,而我的 SWF 位于 bin 下。我尝试使用绝对路径以及文件 URL,但我遇到了同样的问题。
-
您不想使用相对于源文件夹的路径;您想使用相对于编译输出运行位置的路径。在 Flash Builder 中;那是 bin-debug 文件夹;我不确定 FlashDevelop 是如何做到的。您很可能需要这样做:source="gameseed.swf"
-
我发现我的问题与我的 SWF 文件有关。我所拥有的是在我的场景中有一个影片剪辑,其中包含多层进一步的影片剪辑,因为我认为我可以通过它们的实例名称访问它们。当我删除这种嵌套方法时,编译器似乎很高兴。就最佳实践而言,我应该为我的应用程序的每个“页面”设置一个单独的 SWF,还是在 flex 中构建整个应用程序?谢谢!
-
请标记为已回答 ;)
标签: flash apache-flex air flashdevelop