Borysław B.

Borysław B. Mgr inżynier
informatyki,
właściciel Matrix
Reliability

Temat: Kompilacja biblioteki Flex + linker report

Witajcie,

Mam takie zagadnienie do rozwiązania, z którym nie mogę sobie poradzić.
Mam we Flexie napisaną aplikację, która ładuje sobie inne aplikacje. Aby zaoszczędzić na bajtach, dokonuje kompilacji z poziomu konsoli (skrypt *.bat)

Tak jak napisano tu:
http://livedocs.adobe.com/flex/3/html/help.html?conten...

Czyli mam coś w stylu:

mxmlc -link-report=report.xml "AppMenu.mxml"
mxmlc -load-externs=report.xml "App1.mxml"
mxmlc -load-externs=report.xml "App2.mxml"
mxmlc -load-externs=report.xml "App3.mxml"
mxmlc -load-externs=report.xml "App4.mxml"
mxmlc "AppMenu.mxml"
ECHO *** Press Any Key to Continue ***
ECHO.
PAUSE > NUL


Aplikacja App1 używa biblioteki "Comp", która zawiera komponenty "Comp1.mxml", "Comp2.mxml", "Comp3.mxml". Bohużel, kompilacja App1.mxml się nie uda, bo wywali błąd:


Loading configuration file C:\Program Files (x86)\Adobe\Flex Builder 3\sdks\3.1.0\frameworks\flex-config.xml
"App1.mxml"(269): Error: Nie znaleziono typu lub nie jest on stałą czasu kompilacji: Comp1
private function UseComp1(iComp1 : Comp1): void
*** Press Any Key to Continue ***


Jak skompilować App1, który zawiera zewnętrzną bibliotekę (jak dołączyć do App1 linker report)?Borysław Bobulski edytował(a) ten post dnia 08.06.11 o godzinie 15:51
Borysław B.

Borysław B. Mgr inżynier
informatyki,
właściciel Matrix
Reliability

Temat: Kompilacja biblioteki Flex + linker report

Cześć, widzę że nikt nie wie o co mi chodzi.

Wyjaśnię, bo to jest bardzo przydatne.
Link report jest używane by informacje o klasach potrzebnych do działania aplikacji swf lub biblioteki swc zawrzeć w postaci xml-a (xml jest wtedy wbudowany do pliku swf). Dzięki temu możemy określić, które biblioteki będą wspólne dla kilku plików i wbudować te biblioteki w aplikacje matkę - która będzie korzystała z pozostałych swf-ów (np. aplikacja-loader dla plików swf).

Jeśli nasze aplikacje, włącznie z aplikacją loaderem miałyby mieć po 250 KB i miałoby ich być siedem - to można dokonać znaczącej optymalizacji.

Dzięki użyciu -link-report - zamiast siedmiu plików po 250 KB otrzymamy sześć plików 40 KB, zaś tylko aplikacja matka będzie musiała mieć około 250 KB. Jest to znaczne zmniejszenie ilości marnotrawionej pamięci, bo nie ładujemy sześć razy tego samego.

mxmlc -link-report=report.xml "AppMenu.mxml" - oznacza umieszczenie raportu w aplikacji-matce
mxmlc -load-externs=report.xml "AppX.mxml" - oznacza X-krotną aplikację na liście korzystającą z aplikacji-matki, z której w czasie kompilacji wyciągamy wspólne z matką biblioteki zmniejszając ciężar AppX
mxmlc "AppMenu.mxml" - ostatecznie skompilowanie wszystkiego
Borysław B.

Borysław B. Mgr inżynier
informatyki,
właściciel Matrix
Reliability

Temat: Kompilacja biblioteki Flex + linker report

Długo szukałem informacji, ale teraz się chętnie podzielę. Aby skompilować bibliotekę SWC należy użyć innego narzędzia:
compc

Oszczędzę nerwów i męczenia się z Google i podam od razu jak tego używać
Załóżmy, że mamy taką strukturę katalogów:
c:\Test--src-
-assets (dziewoja.png)
-tools (tool1.as)
-mycomp (comp1.mxml, comp2.mxml, comp3.mxml)

Zrobienie pliku SWC z lini komend:

compc -source-path "C:\Test\src" -output "C:\Test\test.swc" -include-classes tools.tool1
mycomp.comp1
mycomp.comp2
mycomp.comp3


Niby proste, ale na te kropki nie wpadłem korzystając z helpa Adobe

Następna dyskusja:

Flashdevelop i kompilacja w...




Wyślij zaproszenie do