Je travaille sur une fonctionnalité pour une application qui nécessite la fonctionnalité Flex 4. En raison de certains problèmes de migration de l'application de Flex 3.5 à 4.0, j'ai décidé d'implémenter cette fonctionnalité en tant que module compilé avec Flex 4.0. La théorie est que l'application resterait compilée dans Flex 3.5 et chargerait le module quand il en aurait besoin.Chargement de modules flex compilés avec Flex 4 SDK dans une application compilée avec Flex 3.5
est ici le code de chargement du module:
public function loadDiagModule():void {
var moduleLoader:ModuleLoader = new ModuleLoader();
moduleLoader.url = "module/DiagrammerModule.swf";
moduleLoader.loadModule();
moduleLoader.addEventListener(ModuleEvent.READY, onModuleReady);
}
protected function onModuleReady(moduleEvent:ModuleEvent):void
{
var moduleInfo:IModuleInfo = moduleEvent.module;
var sample:IDiagrammerModule = moduleInfo.factory.create() as IDiagrammerModule;
Application.application.addChild(sample.testRender());
}
Malheureusement, je rencontre une erreur d'exécution lorsque je charge le module dans l'application:
VerifyError: Error #1014: Class mx.modules::ModuleBase could not be found.
at flash.display::MovieClip/nextFrame()
at mx.core::FlexModuleFactory/deferredNextFrame()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:631]
at mx.core::FlexModuleFactory/update()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:401]
at mx.core::FlexModuleFactory/moduleCompleteHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:718]
Je pense que cela peut être le résultat d'une discordance dans la définition de classe de ModuleBase dans Flex 3.5 et 4.0. Y a-t-il une sorte de changement de configuration avec mon application et/ou projet de module qui permettrait de remédier à cette erreur?
Voici quelques informations sur ma configuration: IDE: Flash Builder 4 plug-in
projet App
- SDK: Flex 3.5
- liaison cadre: Fusionné dans le code
- arguments de compilateur supplémentaires: -locale = en_US, ja_JP -source-path =./locale/{locale}
Module projet
- SDK: Flex 4.0 liaison cadre
- : Utiliser SDK par défaut (bibliothèque partagée d'exécution)
- Copier les fichiers non-intégré dans le fichier de sortie: true
- Générer fichier SWF accessible: true
- arguments de compilateur supplémentaires: -locale en_US
Et quand j'ai changé mon module pour étendre Module au lieu de ModuleBase, j'obtiens l'erreur suivante: VerifyError: Erreur # 1053: Remplacement illégal de callInContext dans diag_DiagrammerModule_mx_core_FlexModuleFactory. – P4ndaman