Flex / Flash Builder:将同一资产嵌入多个组件中

时间:2011-12-23 03:08:08

标签: flex flash-builder embed

如果我在Flex应用程序中的多个组件中嵌入相同的资源(即图像或声音文件),编译的swf是否只包含资产(及其文件大小)每次嵌入一次或一次?

1 个答案:

答案 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~~~~~