簡體   English   中英

在運行時將 swf 分配為 flex 中的圖像源

[英]assign swf as image source in flex at runtime

在 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 的支持?

請幫幫我。

謝謝

使用SWFLoader加載 SWF,圖像是為圖像制作的......

你絕對確定你的路徑是正確的嗎? 因為它應該工作。

請記住,您編寫的路徑 (assets/AS3.swf) 是相對於應用程序 swf 文件的位置的。 因此,例如,如果您在 FlashBuilder/FlexBuilder 中進行調試,則該文件應位於

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

非嵌入文件不會自動復制到 bin-debug 文件夾(或 bin-release 文件夾)。 所以你必須手動完成。

您可以使用 web 調試代理(如Charles )來查看是否在您使用的路徑中找到該文件。

您是否在 Flex 3 到 Flex 4.5 的遷移中不小心將 mx:Image 重構為 s:Image?

對於 Spark Image,您可能需要在 SWF 中引用符號名稱。

我發現這行得通:

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

不過,這似乎是一種不好的做法 - 與 mx:Image 不同的是,它會原生加載 SWF,Spark Image 旨在用於 bitmap 數據。

對於Flex 4 ,我認為只有支持AS3 (AVM2*) 的 SWF 被放棄了。 嘗試在 AVM1* 中運行的AS1 和 AS2

* AVM(動作腳本虛擬機)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM