Bug de compilation

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Peut-être que ça vous est déjà arrivé ??

Vous compilez vos classes, mais ça ne met aucunement à jour le swf résultant.

Vous me direz : "y a qu'a supprimer les fichiers .aso et recompiler :)"

Hélas, dans certains cas, ce n'est de loin pas suffisant.
Voilà le problème auquel j'ai été confronté :

J'ai tout d'abord un fla principal nommé "Interface.swf" (application du formulaire Flash). Sur ce dernier sont connectées plusieurs librairies partagées, placées dans un sous-répertoire "content" (voir le thread sur les librairies partagées.

Dans une de mes librairies, j'ai des clips liés à des classes ActionScript.
Le problème, c'est qu'il y a plusieurs liaisons directes avec des classes utilisées dans mon interface principale, par exemple des "import" sur des classes de l'interface.

La bibliothèque partagée incriminée, __configurations.swf, était compilée depuis son répertoire "content". A la base, je n'avais pas mis dans les paramètres ActionScript une liaison sur le répertoire racine (./../) afin de compiler les éléments avec leur classes. Donc à la compilation, j'avais un message d'erreur sur les différents movieClips.
Reprenant cette partie du projet que je n'avais pas travaillé depuis plus d'un mois, je n'ai pas pensé une seconde à l'incidence de mes actions... Ayant des messages d'erreur, j'ai rajouté la liaison sur le répertoire racine dans les paramètres ActionScript, et j'ai recompilé la librairie.

Dès lors, plus aucune modification dans les classes de l'interface principale ne se reflétaient dans la compilation du code. J'ai cherché pendant des heures ou se situait le problème, en recommençant de nouveaux projets, supprimant les .aso, modifiant certaines classes de base, sans trouver de solution.
C'est seulement après bien des cogitations que j'ai compris d'où venait le problème. Les classes ayant pas mal de dépendances entre elles, les classes de configuration liaient également les classes de l'interface de base, et le tout compilé prenait le dessus sur la compilation de l'interface principale.

Cette fois-ci, je l'inscrit, j'ai tellement ramé pour trouver la source du problème Tongue Smile




salut thierry,
j'ai été confronté à ce problème aussi et j'ai résolu mon souci en utilisant le principe des fichiers d'exclusions (_exclude.xml) ainsi les classes dépendantes ne sont compilées que dans la bibliothèque partagée et plus dans les swf qui l'appellent.

François.

Portrait de titouille

Merci pour l'info Smile
Est-ce que tu aurais une url ou un petit exemple de fichier d'exclusion pour étayer ta démarche ? Je connaissais les fichiers d'exclusion, mais plutôt dans le but de ne pas charger toutes les classes MX (les classes de composants).
Je trouve que c'est une bonne idée que de l'utiliser dans ton optique Smile