在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的支持吗?
请帮帮我。
感谢
答案 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虚拟机)