1
如果我在Flex應用程序中的多個組件中嵌入了相同的資源(即圖像或聲音文件),編譯後的swf是否僅包含資產(及其文件大小)每次嵌入一次或一次?Flex/Flash Builder:在多個組件中嵌入相同的資源
如果我在Flex應用程序中的多個組件中嵌入了相同的資源(即圖像或聲音文件),編譯後的swf是否僅包含資產(及其文件大小)每次嵌入一次或一次?Flex/Flash Builder:在多個組件中嵌入相同的資源
多次嵌入相同的資產將使您的swf更高。它不會需要一次應用程序的文件大小將是次數x Assetd。例如,如果您使用兩次相同的資產,編譯後的swf將比單次嵌入時多兩倍。
我試過如下
我的代碼如下
<fx:Script>
<![CDATA[
[Embed(source="CD2_AUDIO.mp3")]
[Bindable]
public var sndCls:Class;
[Embed(source="CD2_AUDIO.mp3")]
[Bindable]
public var sndCls2:Class;
public var snd:Sound = new sndCls() as Sound;
public var sndChannel:SoundChannel;
public function playSound():void {
sndChannel=snd.play();
}
public function stopSound():void {
sndChannel.stop();
}
]]>
</fx:Script>
<mx:HBox>
<mx:Button label="play" click="playSound();"/>
<mx:Button label="stop" click="stopSound();"/>
</mx:HBox>
注:聲音的大小爲26 MB
生成後我去斌調試,發現文件大小的應用程序大約是57,004,925字節,因爲我已經使用了兩次。
當我只使用資產一次顯示28,817,403字節。
因此,應用程序會增加您使用的次數。
~~~~~Happy Coding~~~~~
'合併到代碼'和'RSL'定義Flex框架和/或其他外部庫如何鏈接到您的應用程序中。我沒有看到這與這個問題有什麼關係。 – RIAstar 2011-12-23 08:57:01
@RIAstar感謝您在這裏指定。我通過合併一些其他內容而犯了錯誤。我修改了我的答案。 – Exhausted 2011-12-23 09:23:26