如果我在Flex应用程序中的多个组件中嵌入相同的资源(即图像或声音文件),编译的swf是否只包含资产(及其文件大小)每次嵌入一次或一次?
答案 0 :(得分:1)
多次嵌入同一资产会让你的swf更高。应用程序的文件大小不会花费一次 No of times x Assest 。例如,如果您使用相同的资产两次,则编译的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
构建之后,我进入bin-debug并注意到应用程序的文件大小约为57,004,925字节,因为我已经使用了两次。
当我只使用资产一次时它显示28,817,403字节。
因此,应用程序会增加您使用的次数。
~~~~~Happy Coding~~~~~