actionscript-3
  • flex4
  • tlf
  • flashplayer-10
  • 2011-10-31 39 views 0 likes 
    0

    非常多的文件大小我有需要支持RTL語言,但這不是普通文本字段,所以我用TLF實現的一個文本字段。我創建了一個測試項目,只是爲了測試這個使用TLF的小文本字段,並猜測它變成了346KB。我在flash開發中瀏覽了編譯後的swf,並且我可以看到很多TLF框架中的類,我沒有在文本項目中導入這些類。添加TLF增加SWF

    如何將它們從插件中刪除到主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; 
    

    回答

    2

    編譯器只嵌入您的項目真正需要的類運行。你認爲你不需要的類可能被你導入的做了的TLF框架類使用。

    RTL語言真的很難實現,尤其是在LTR文本一起。但是 - 總是可以擴展TextField並創建自己的RTL字段,這可能會大大減少文件大小。這一切都取決於你願意花多少時間。

    1

    您確實有其他選擇。如果您主要關心的是最終swf的大小,則可能需要將'Flex構建路徑'屬性區域中的'Framework Linkage'切換爲'運行時共享庫​​(RSL)'。這將允許您的swf不包含任何運行時庫。 textLayout_2.0.0.232.swz文件本身爲188kb。如果他們已經擁有它,這個運行時庫不會下載到客戶端,在這種情況下,下載您的swf將是唯一下載的部分,並且要小得多。

    你應該嘗試的,看看您的SWF的大小是什麼。確保你的swf文件已經部署了RSL文件,所以可以根據需要下載。

    相關問題