0

我有一个使用 Adob​​e Flash Builder 编译的简单 Flash 视频播放器,但现在我使用 Flex SDK 4.6 编译它。使用 FB 编译时,Flash 文件大小为 20KB。现在是 280KB 。我知道它向 swf build 添加了一些 swc 文件,我已禁用此处提供的调试等说明http://livedocs.adobe.com/flex/3/html/help.html?content=performance_06.html。是否可以在不使用 mxml 的情况下以某种方式转换 fla 组件?

这是我的 mxml 代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application backgroundColor="#000000" xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" minWidth="320" minHeight="240" creationComplete="initApp()">
    <fx:Script>
        public function initApp():void{
            var p = new video_player(uic);                      
        }       
    </fx:Script>    
    <mx:UIComponent id="uic" />      
</mx:Application>

video_player.as

....Import statements
public class video_player{      
        private var uic:UIComponent
        var fullScreen:Image;
        var rtmpApplication:String;
        var streamName:String;
        public function video_player(_uic:UIComponent) {
            uic=_uic;
            if (FlexGlobals.topLevelApplication.parameters.hasOwnProperty("applicationName")) {
                rtmpApplication=FlexGlobals.topLevelApplication.parameters.applicationName;
            }
            if (FlexGlobals.topLevelApplication.parameters.hasOwnProperty("streamName")) {
                streamName=FlexGlobals.topLevelApplication.parameters.streamName;
            }       
            vPlayer=new Video(playerwidth,playerheight);
            uic.addChild(vPlayer);
            init();         
        }

        public function init(){
         //add fullscreen image in flash top right , and event handler
         //Code to connect to live application and play video using NetConnection and NetStream
        }

}

有没有办法解决?

4

1 回答 1

2

我还添加了选项 -static-link-runtime-shared-libraries=true 所以它不会下载任何东西 runtime 。没有那个闪存大小是 49KB

通过设置上述选项,您已告知编译器在应用程序 SWF 中包含所有 Flex 框架类(由您的应用程序使用)。因此,您的 SWF 从 49KB 增长到 280KB。

这就是我和@Reboog711 谈论的“RSL”事物(运行时共享库​​)。如果您使用 Flex RSL,那么所有 Flex 框架代码都不会包含在您的应用程序 SWF 中。Flex 框架 RSL 由 Adob​​e 签名并且可以由 Flash Player 缓存。所以使用它们总是更可取的。(注意:我假设这一切仍然适用于 Apache Flex)

最后,我想重申一下,在 Flash Builder 中,您可以创建两种基本类型的项目:Flex 项目、Actionscript 项目。我忽略了移动选项,但同样适用于它们:

通常,Actionscript 项目会产生较小的 SWF,因为您不依赖任何 Flex 框架类。如果您要创建一个 Actionscript 项目,听起来您可以使您的视频播放器应用程序更小(接近您最初拥有的 20KB 大小)。

于 2013-08-23T18:12:03.913 回答