Flash 如何重新编译Flex4框架RSL?

Flash 如何重新编译Flex4框架RSL?,flash,flash-builder,rsl,apache-flex,Flash,Flash Builder,Rsl,Apache Flex,有人知道如何重新编译AdobeFlex4FrameworkRSLS吗 我使用编译器指令-dump-config获取FlashBuilder IDE用于编译我的应用程序的构建配置文件。然后,我将该配置文件传递到mxmlc编译器中,以便可以从命令行进行构建。命令行生成的结果将输出到bin debug以外的文件夹。bin debug是一个localtrust路径,应用程序将从此路径运行而不会出错。任何其他路径中的Flash应用程序都需要将Flash Player配置为信任该路径,或者使用-use ne

有人知道如何重新编译AdobeFlex4FrameworkRSLS吗

我使用编译器指令-dump-config获取FlashBuilder IDE用于编译我的应用程序的构建配置文件。然后,我将该配置文件传递到mxmlc编译器中,以便可以从命令行进行构建。命令行生成的结果将输出到bin debug以外的文件夹。bin debug是一个localtrust路径,应用程序将从此路径运行而不会出错。任何其他路径中的Flash应用程序都需要将Flash Player配置为信任该路径,或者使用-use network=false指令完成编译。我更喜欢后者,因为我将把结果分发给非专业用户进行评估,我不想要求他们修改Flash Player的安全设置

构建配置文件没有指定使用-use network false指令重新生成框架RSL。FlashBuilder本身甚至不编译框架RSL。它只是将RSL SWF从框架目录复制到bin调试中。这些主权财富基金显然是由Adobe编译的,默认值为-use network=true


因此,我认为我需要重新编译RSL。当然,任何关于如何解决问题的其他提示都是受欢迎的。

理论上,您应该能够从开源Flex SDK下载所有代码,创建SWC项目,从Flex框架添加源代码,并以这种方式进行编译。然而,使用AdobeRSL的好处是播放器可以缓存它们。最终用户可能永远不会向服务器请求Flex Framework RSL;已经从其他站点缓存了它们

也就是说,我不确定我是否理解问题所在。如果您通过web服务器将应用程序分发给您的用户,那么这些用户可以像其他应用程序一样浏览应用程序并进行测试。Flash Builder使用的文件夹或自动命令行生成脚本应该与用户使用文件的能力无关


其次,我绕过Flex Builder建议的默认“bin debug”目录,将所有应用程序编译到名为“bin”的目录中。我从未遇到过为用户分发应用程序以供查看的问题。或者将代码分发给其他用户

关于Flex-rsl,我学到了很多我不需要知道的东西,如何重新编译Flex-SDK及其未签名的rsl,而重新编译是不必要的

目前,我从构建过程中删除了flex配置文件,并且能够专注于RSL问题。由于类依赖关系和进程顺序,列出运行时共享库路径的顺序很重要。另外,请确保至少将未签名的RSL复制到输出路径中。否则,您将看到以下错误: 错误#2032:流错误。网址:file:///.../cmd-bin-debug/textLayout_1.1.0.604.swf

最后,如果您确实需要使用FlashBuilder转储的flex配置文件,则需要将其转换为预先提供到RSL的完整路径。此外,还要注意FlashBuilder项目设置与flex配置中转储的内容之间的差异。我发现我需要告诉FlashBuilder多次清理项目,以使其更新配置文件

下面列出了经过提炼的工作“重新编译”。您需要替换或声明FLEX\u HOME和release\u build的变量

首先指定已签名的RSL,然后指定故障转移,您必须设置-use network=false进行本地测试,否则播放机将抛出闪存安全错误 mxmlc-使用网络=假\
-运行时共享库路径=$FLEX\u HOME/frameworks/libs/framework.swc,framework\u$release\u build.swz,,framework\u$release\u build.swf\
-运行时共享库路径+=$FLEX_HOME/frameworks/libs/textLayout.swc,textLayout_1.1.0.604.swz,,textLayout_1.1.0.604.swf\
-运行时共享库路径+=$FLEX\u HOME/frameworks/libs/spark.swc、spark\u$release\u build.swz、spark\u$release\u build.swf\
-debug=true$fullfile-output../cmd bin debug/$filename.swf

哦,这里有一个将RSL复制到输出路径的方便命令:
查找$FLEX_HOME/frameworks/rsls(-name'.swf'-o-name'.swz')-exec cp{}../cmd bin debug\

我正在分发html包装、应用程序swf和rsl文件。服务器没有为它们提供服务。在我开始使用Flex4SDK和FlashBuilder4之前,我没有遇到过这个问题。我见过类似的Flash Player安全问题,通常通过将-use network=true改为false来处理。使用flexTasks和一个修改过的ant构建文件,我对事情做了一些改进。现在它只是警告textLayout_1.1.0.604.swf启用了internet,但它将在警告后运行。通过给人们提供HTML包装和生成的swf来分发应用程序对我来说似乎有些奇怪。也许你应该考虑使用空气或其他工具来进行桌面部署。此外,您还可以将框架设置为非RSL,使其作为一个整体嵌入。我不清楚我的回答中有哪一部分不完全正确。空气会让人感觉过度。我将向销售、市场营销、经理和同事发送构建。在询问RSL之前,我尝试使用-static link runtime shared libraries=true,但使用该指令我甚至无法构建。编译器抛出错误“无法找到组件类“Main.Main.mxml”的指定基类“spark.components.Application”。感谢您的响应。你的回答完全是真实的,所以我投了更高的票。这不能解决我的问题,所以我暂时不回答。我正在研究Adobe的开源构建文件。如果我找到解决方案,我会发布。为什么你要手动将构建发送给这些人,而不是让他们点击web服务器——就像Flex/Flash Player设计的那样?看起来您引入了一个部署问题,使用web服务器可以完全消除这个问题。我强烈建议你c