在运行时将swf指定为flex中的图像源

时间:2011-05-25 17:00:27

标签: flex flash

在Flex中,如何在运行时将swf指定为图像源,而不是嵌入

[Bindable] public var myImg:String;

<mx:Image id="intImg" source="{myImg}" width="96%" height="96%" />

在我的应用程序中,我从Web服务调用中动态获取图像URL,并将其分配给“myImg”。

但是直到我没有收到来自Web服务调用的响应,我想在上面的图像控件中显示一个加载器swf。我分配了类似的东西:

myImg = "assets/AS3.swf";

并且swf的路径是正确的,但它没有出现。


更新

我上面展示的代码在Flex 3应用程序中运行良好,但swf不会出现在Flex 4应用程序中。是因为Image控件已经放弃了对Flex 4中swf的支持吗?

请帮帮我。

感谢

4 个答案:

答案 0 :(得分:2)

使用SWFLoader加载SWF,图像是针对图像...

答案 1 :(得分:0)

你绝对确定你的道路是正确的吗?因为它应该有用。

请记住,您编写的路径(assets / AS3.swf)是相对于应用程序swf文件的位置。因此,例如,如果您在FlashBuilder / FlexBuilder中进行调试,则该文件应位于

[yourprojectdirectory]/bin-debug/assets/AS3.swf

非嵌入式文件不会自动复制到bin-debug文件夹(或bin-release文件夹)。所以你必须手动完成。

您可以使用网络调试代理(例如Charles)来查看该文件是否位于您正在使用的路径中。

答案 2 :(得分:0)

您是否意外地重构了mx:Image to s:Flex 3到Flex 4.5迁移中的图像?

对于Spark Image,可能需要在SWF中引用符号名称。

我觉得这很有效:

<s:Image source="@Embed(source='path.swf', symbol='name')" ...

看起来似乎是一种不好的做法 - 不像mx:Image本身会加载SWF,Spark Image用于位图数据。

答案 3 :(得分:-3)

对于 Flex 4 ,我认为仅支持 AS3 (AVM2 *)支持的SWF。 尝试 AS1&amp; AS2 ,在AVM1 *

中运行

* AVM(ActionScript虚拟机)