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

Apache flex 在运行时将swf指定为flex中的映像源,apache-flex,flash,Apache Flex,Flash,在Flex中,如何在运行时将swf指定为映像源,而不是嵌入它 [Bindable] public var myImg:String; <mx:Image id="intImg" source="{myImg}" width="96%" height="96%" /> swf的路径是正确的,但没有显示 更新: 我上面展示的代码在Flex 3应用程序中非常有效,但swf在Flex 4应用程序中没有出现。是不是因为图像控制放弃了对Flex 4中swf的支持? 请帮帮我 谢谢使用SWF

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

[Bindable] public var myImg:String;

<mx:Image id="intImg" source="{myImg}" width="96%" height="96%" />
swf的路径是正确的,但没有显示


更新:

我上面展示的代码在Flex 3应用程序中非常有效,但swf在Flex 4应用程序中没有出现。是不是因为图像控制放弃了对Flex 4中swf的支持?

请帮帮我


谢谢

使用
SWFLoader
加载SWFs,图像是为图像制作的…

您是否绝对确定您的路径正确?因为它应该有效

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

[yourprojectdirectory]/bin-debug/assets/AS3.swf
非嵌入文件不会自动复制到bin debug文件夹(或bin release文件夹)。所以你必须手动操作


您可以使用类似web调试的代理来查看文件是否在您使用的路径中找到。

您是否在从Flex 3到Flex 4.5的迁移中意外地将mx:Image重构为s:Image

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

我觉得这很有效:

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

对于Flex 4,我认为只有支持AS3(AVM2*)的SWF被放弃。
尝试使用在AVM1中运行的AS1和AS2*


*AVM(ActionScript虚拟机)

您是否尝试过在intImg.source=“assets/AS3.swf”中手动更新映像源?尝试过,但不幸无效:(感谢您的回复-我已经了解到我们可以将swf指定为映像控制源。source属性的值表示相对或绝对URL;ByteArray表示SWF、GIF、JPEG或PNG;实现IFlexDisplayObject;的对象。。。。"这就是问题所在,大多数时候你的SWF没有实现IFlexDisplayObject,因为它通常是CS5 SWF…我认为SWF支持在Spark映像中被删除了。至少,文档中说使用SWFLoader加载任何SWF数据,因此它为什么会存在…只是检查一下:也适用于Spark映像。虽然它不使用SWFLoader内部不再存在。mx图像确实直接从SWFLoader扩展。如果您只想显示加载程序动画,两者都可以。至于原因:您可能希望加载的动画与最终图像的外观相同。非常好。感谢您的确认!@RIAstar感谢您的回复,我尝试了您的sugFlex3应用程序中的手势很有效,但在我的Flex 4应用程序中,它没有显示swf。这真的很奇怪。可能是FlashBuilder/FlexBuilder的不同版本?我似乎记得在引用主应用程序的相对路径时发生了一些更改。如果您将资产文件夹放在src文件夹之外,在一个版本中,您必须引用将文件替换为“./assets/img.jpg”,而现在您只需执行“assets/img.jpg”。
<s:Image source="@Embed(source='path.swf', symbol='name')" ...