0

RTL言語をサポートする必要のあるテキストフィールドが1つありますが、これは通常のTextFieldでは実現できないため、TLFを使用しました。TLFを使用したこの小さなテキストフィールドでテストを行うためだけにテストプロジェクトを作成し、それが346KBになったと推測します。コンパイルされたswfをflashdevelopで参照しましたが、テキストプロジェクトにインポートしていない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;

だから基本的に私はこれらのクラスをインポートしています

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;
4

2 に答える 2

2

コンパイラーは、プロジェクトが実際に実行する必要のあるクラスのみを埋め込みます。不要だと思われるクラスは、インポートしたTLFフレームワーククラスで使用されている可能性があります

RTL言語は、特にLTRテキストと組み合わせて実装するのは非常に困難です。ただし、TextFieldを拡張して、独自のRTL対応フィールドを作成する可能性は常にあります。これにより、ファイルサイズが大幅に軽減される可能性があります。それはすべてあなたがどれだけの時間を費やしても構わないと思っているかに依存します。

于 2011-10-31T09:54:22.040 に答える
1

別のオプションがあります。最終的なswfのサイズが主な懸念事項である場合は、「Flex BuildPath」プロパティ領域の「 FrameworkLinkage 」を「 Runtimesharedlibrary(RSL)」に切り替えることをお勧めします。これにより、swfにランタイムライブラリが含まれなくなります。textLayout_2.0.0.232.swzファイルはそれ自体で188kbです。このランタイムライブラリは、クライアントがすでに持っている場合はダウンロードされません。その場合、ダウンロードされるのはswfのダウンロードだけであり、はるかに小さくなります。

それを試して、swfのサイズを確認する必要があります。必要に応じてダウンロードできるように、SWFでRSLファイルがデプロイされていることを確認してください。

于 2011-11-05T21:55:34.413 に答える