Actionscript 3 添加TLF大大增加了swf的文件大小

Actionscript 3 添加TLF大大增加了swf的文件大小,actionscript-3,flex4,tlf,flashplayer-10,Actionscript 3,Flex4,Tlf,Flashplayer 10,我有一个文本字段需要支持RTL语言,但这是普通文本字段无法实现的,所以我使用了TLF。我创建了一个测试项目,只是为了用这个使用TLF的小文本字段进行测试,猜猜它变成了346KB。我在flashdevelope中浏览了编译好的swf,我可以看到很多来自TLF框架的类,这些类我还没有在文本项目中导入 如何将它们从加载项删除到主swf文件 这是我的密码 msg = "<TextFlow xmlns='http://ns.adobe.com/textLayout/2008'><p>

我有一个文本字段需要支持RTL语言,但这是普通文本字段无法实现的,所以我使用了TLF。我创建了一个测试项目,只是为了用这个使用TLF的小文本字段进行测试,猜猜它变成了346KB。我在flashdevelope中浏览了编译好的swf,我可以看到很多来自TLF框架的类,这些类我还没有在文本项目中导入

如何将它们从加载项删除到主swf文件

这是我的密码

msg = "<TextFlow xmlns='http://ns.adobe.com/textLayout/2008'><p><span>Enter text here ...</span></p></TextFlow>";
textFlow = TextConverter.importToFlow(msg , TextConverter.TEXT_LAYOUT_FORMAT);
textFlow.fontSize = 12;
textFlow.flowComposer.addController(new ContainerController(this, 200, 50));
textFlow.flowComposer.updateAllControllers();

undoManager = new UndoManager();
editManager = new EditManager(undoManager);

textFlow.interactionManager = editManager;

编译器只嵌入项目真正需要运行的类。您认为不需要的类可能由您导入的TLF框架类使用


RTL语言很难实现,尤其是与LTR文本结合使用时。但是-总是有可能扩展TextField并创建自己的支持RTL的字段,这可能会大大减少文件大小的负担。这完全取决于您愿意花费多少时间。

编译器只嵌入项目真正需要运行的类。您认为不需要的类可能由您导入的TLF框架类使用


RTL语言很难实现,尤其是与LTR文本结合使用时。但是-总是有可能扩展TextField并创建自己的支持RTL的字段,这可能会大大减少文件大小的负担。这完全取决于你愿意花多少时间。

你还有其他选择。如果您主要关心的是最终swf的大小,您可能希望将“Flex Build Path”属性区域中的“框架链接”切换到“运行时共享库(RSL)”。这将允许swf中不包含任何运行时库。textLayout_2.0.0.232.swz文件本身为188kb。如果客户机已经有了这个运行库,那么它就不会下载到客户机上,在这种情况下,下载您的swf将是唯一下载的部分,而且要小得多


你应该试试看,看看你的swf有多大。确保您的swf部署了RSL文件,以便在需要时可以下载它们。

您还有其他选择。如果您主要关心的是最终swf的大小,您可能希望将“Flex Build Path”属性区域中的“框架链接”切换到“运行时共享库(RSL)”。这将允许swf中不包含任何运行时库。textLayout_2.0.0.232.swz文件本身为188kb。如果客户机已经有了这个运行库,那么它就不会下载到客户机上,在这种情况下,下载您的swf将是唯一下载的部分,而且要小得多

你应该试试看,看看你的swf有多大。确保您的swf部署了RSL文件,以便在需要时可以下载它们

import flashx.textLayout.compose.StandardFlowComposer;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.conversion.TextLayoutExporter;
import flashx.textLayout.elements.SpanElement;
import flashx.textLayout.elements.ParagraphElement;
import flashx.textLayout.elements.TextFlow;
import flashx.textLayout.formats.TextLayoutFormat;
import flashx.textLayout.factory.StringTextLineFactory;
import flash.text.engine.TextLine;
import flash.geom.Rectangle;
import flashx.textLayout.edit.EditManager;
import flashx.undo.UndoManager;
import flashx.textLayout.conversion.TextConverter;