【发布时间】:2013-08-26 17:57:48
【问题描述】:
我有一个使用 Adobe 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
}
}
有没有办法解决这个问题?
【问题讨论】:
-
你能分享你如何编译它们的信息吗?您在 Flash Builder 中有一个仅 ActionScript 的项目吗?框架是否设置为 RSL?据我所知,用 MXML 创建 fla 组件是不可能的。
-
@Reboog711 感谢 Jeff 的评论我发布了 mxml,actionscript 代码。我在构建时尝试了“-link-report”,它显示嵌入的 .swc 文件导致文件很大。我将非常感谢任何帮助。
-
一旦您使用了
<mx:Application>标签,您的SWF 就会变得臃肿不堪。你说得好像最初一样,你的代码不依赖于 Flex 框架,那么那个代码是什么样子的?如果您的原始代码是相同的,也许您最初是使用 RSL 进行编译的(如上所述),而现在您不是?但是,即使使用 RSL,我也从未见过 Flex SWF 小到 20Kb。 -
@SunilD。我正在使用 Flash Builder 进行构建,它是一个 FLA 文件,它使用的是 swf 组件。没有 mxml 文件或没有 Flex 。使用 Flex SDK 的唯一原因是为了避免 Flash Builder 许可和成本。
-
好吧,解释一下:Flash Builder 是我们用于 Flex 和纯 Actionscript 项目的 IDE。如果您创建了 FLA 文件,那么您没有使用 Flash Builder。您使用的是 Flash Professional(或 Flash 创作工具、Flash CS5、Flash CS6……我不知道该怎么称呼它)。不幸的是,一旦您切换到 Flex,您就会在项目中添加更多代码。使用 Flex RSL 进行编译是对抗臃肿的一种方法。默认设置是使用 RSL,因此您的基于 Flex 的 SWF 可能不会变得更小。
标签: actionscript-3 flash apache-flex flash-builder flex4.5