Je me suis cogné la tête contre un mur pendant presque deux jours et j'espère que quelqu'un pourra me diriger dans la bonne direction.AS3 alternatives aux fichiers * _exclude.xml, chargement dynamique des définitions de classe
Travailler dans un très grande application Flash, précédemment dans AS2/CS3 j'avoir une configuration comme ceci:
root.swf
-- modules
---- code_a.swf
---- code_b.swf
-- views
---- view_a.swf
---- view_b.swf
En utilisant _exclude.xml
fichiers, je pouvais exclure les classes définies dans code_a
et code_b
de la sortie .swf de view_a
et view_b
. root.swf
serait chargé de charger les modules de code avant view_a
ou view_b
, en s'assurant que les définitions de classe que view_a
et view_b
dépendaient existaient.
Le problème
Nous avons récemment migré à l'aide d'Actionscript 3/CS5. *_exclude.xml
fichiers n'existent plus. Pour obtenir les mêmes fonctionnalités que ci-dessus, je l'ai essayé ce qui suit:
Ma configuration ressemble maintenant quelque chose comme:
root.swf
-- modules
---- class_a.as
---- class_b.as
-- views
---- view_a.swf
---- view_b.swf
Utilisez mxmlc
pour compiler root.swf
, view_a.swf
et view_b.swf
, faisant passer l'option -externs
pour spécifier des classes qui sera chargé en externe (les deux classes en modules
). Cela garantit que la classe est exclue du swf compilé.
Utilisation compc
pour compiler class_a.as
et class_b.as
en classes.swf
, en utilisant -directory=true
pour accéder à library.swf
pour le chargement externe.
Toutefois, lorsque j'essaie d'exécuter l'un des deux fichiers de vue qui dépendent de classes.swf
, des erreurs d'exécution me signalent qu'une définition de classe n'est pas présente.
actuel Solution
J'ai conçu une solution de contournement que je suis actuellement pas content car il est en arrière à l'approche modulaire que j'utilisais précédemment:
Au lieu de charger les modules de code, Je lie statiquement toutes les définitions de classe requises par les films enfants dans root.swf
. Lors de la construction root.swf
, j'utilise l'option -link-report
de mxmlc
pour fournir une liste des classes incluses. Lors de la création de swfs enfants, je peux utiliser -load-externs
pour garantir que les définitions de classe qui existent déjà ne seront pas incluses dans la sortie de la compilation.
Y at-il un moyen que tout le monde connaisse pour répliquer la solution AS2/_exclude.xml que j'avais en utilisant AS3/CS5?
Cette ligne de commande est-elle mxmlc, Flash Builder ou Flash Pro? –
Il utilise l'OS Flex SDK – deadbeef