Bonjour,
Je vous partage aujourd'hui le SDK OFFICIEL, qui vous permettra de programmez vos propres modules en Action Script.
Le sdk est compatible la dernière version du jeu à ce jour (2.27).
/!\ L'API est limitée pour ne pas pouvoir automatiser d'action en jeu, cependant des failles existent pour contourner cette restriction.
Cliquez pour révéler
Cliquez pour masquer
Bonsoir,
Il est possible d'accéder à l'objet Stage de D0fusInvoker grâce à une propriété que vous nous avez laissé, qui nous retourne un UiRootContainer, à partir duquel on accède au parent, du parent, du parent, ou bien directement au .stage.
On obtient bien une violation de la sandbox par la suite, mais nous avons une référence sur le stage quand même. ( J'ai pas investigué plus que ça, mais peut être qu'en utilise une ModuleReference, puis un getInstance() de ce module, on peut aussi bien accéder au stage via un module trusted, suffit qu'il possède un bouton. )
J'vous laisse un screen qui montre à quel niveau dans la displaylist j'ai pu aller, à vous de voir si c'est un problème de pouvoir accéder jusque là.
Description du SDK
La première chose à faire est de télécharger le SDK D. : lien vers la dernière version
Anciennes versions:
Cliquez pour révéler
Cliquez pour masquer
Le SDK contient les éléments suivants:
La modules-library, bibliothèque fournissant les fonctionnalités nécessaires à l'AS3 pour le développement des modules. Le contenu des sous-dossiers est le suivant:
-Dans modules-library/bin, la bibliothèque compilée (en swc).
-Dans modules-library/src, le code source de cette bibliothèque.
-Dans modules-library/doc, la documentation de référence des fonctionnalités offertes par la bibliothèque. Cette documentation détaille le contenu des classes proposées par la modules-library ainsi qu'une liste des actions disponibles et leur paramétrage (plus de détails sur les actions).
Le dossier exemple contient le code source de deux modules d'exemple commenté.
Le fichier d0fus-flashdevelop-2.3.5.zip (le numéro correspond à la version du SDK) contient les plugins proposés pour FlashDevelop.
Mise en place de l'environnement de développement pour des modules
Il est nécessaire d'installer un certain nombre de programmes pour créer puis compiler des modules.
Deux solutions sont possibles:
- Utiliser FlashDevelop, un IDE AS3 personnalisable. Le SDK D. contient tous les plugins FlashDevelop nécessaires pour automatiser le processus de création et de compilation de modules. C'est la solution la plus facile à mettre en place, que nous recommandons aux nouveaux développeurs. FlashDevelop n'est cependant disponible que sous les systèmes d'exploitation Windows.
- Créer et compiler ses modules manuellement afin d'utiliser n'importe quel IDE sous n'importe quel système d'exploitation.
Développement de modules via FlashDevelop
FlashDevelop est un IDE complet pour la programmation en Action Script. Il dispose de nombreuses fonctionnalités utiles pour les développeurs ActionScript, et le SDK D. permet d'intégrer à l'éditeur la notion de modules D. .
Installation et configuration
Il faut commencer par télécharger puis installer FlashDevelop.
Il faut ensuite ouvrir FlashDevelop, puis accéder au répertoire des fichiers de configuration utilisateur via le menu Tools puis Application Files.... Cela ouvre l'explorateur de fichiers dans le répertoire de personnalisation de FlashDevelop.
Il faut ensuite copier/coller le fichier d0fus-flashdevelop-2.3.5.zip (ou le fichier qui correspond au numéro de version du SDK D. téléchargé) dans ce répertoire, puis le décompresser.
FlashDevelop est maintenant prêt pour le développement de modules.
Créer un nouveau module
Pour créer un nouveau module, il faut choisir le menu Project puis New. Une liste de squelettes de projets apparaît. Choisir D. Module Project (à la fin de la liste).
![[Image Introuvable]](https://i.ibb.co/M1DQDJw/Capture.png)
Le nom du module ne doit pas comporter d'espace ni de caractères spéciaux et doit commencer par une majuscule. Le nom du package doit être laissé vide.
Ensuite, FlashDevelop demandera un nom d'auteur. Ce nom ne doit pas comporter d'espaces ni de caractères spéciaux et doit commencer par une majuscule. Il est important car il sera reporté dans les données du module. Il n'est demandé qu'à la première création de projet, puis sauvegardé par FlashDevelop.
Le module est maintenant créé et peut être compilé.
Compiler
Le menu Project puis Build Project (ou la touche F8) permet de compiler un module. Si la compilation est un succès, le projet FlashDevelop peut ensuite être copié dans son intégralité dans le répertoire des modules de D. et fonctionnera.
Développement de modules via une compilation manuelle
Si vous ne souhaitez pas développer avec FlashDevelop, ou si votre système d'exploitation ne vous le permet pas, n'importe quel autre IDE peut être utilisé pour la réalisation de modules, en configurant manuellement le compilateur.
Il faudra télécharger le SDK Flex et choisir la dernière version disponible.
La compilation se fait ensuite à l'aide du programme mxmlc fournis dans le SDK.
La syntaxe de la commande est la suivante:
mxmlc -output fichierSortie.swf -source-path repertoireSource -compiler.library-path+=cheminModulesLibrary.swc -keep-as3-metadata Api Module DevMode -- fichierSourcePrincipal.as
avec:
fichierSortie.swf le fichier swf résultat de la compilation.
repertoireSource le répertoire où se trouve le code source du module.
modulesLibrary.swc le chemin vers le fichier modules-library-{version}.swc.
fichierSourcePrincipal.as le fichier où se trouve la classe principale du module.
Par exemple, voici la ligne de commande utilisée pour la compilation du module Anakama_Exemple fourni dans le SDK D. :
mxmlc -output Exemple.swf -source-path src -compiler.library-path+=../../modules-library/bin/modules-library-2.3.4.swc -keep-as3-metadata Api Module DevMode -- src/Exemple.as
Activation des modules
Avec la version 2.16, l'activation des modules a était un petit peu modifiée :
Un nouveau fichier de configuration doit etre créé à la main, il ne sera jamais écrasé par l'updater.
Pour ce faire, créer le fichier config-custom.xml au niveau du binaire de d. (D0fus.exe sur Windows) avec le contenu suivant :
Cliquez pour révéler
Cliquez pour masquer
<?xml version="1.0" encoding="UTF-8"?>
<LangFile>
<!-- Activation du mode developpement, forcément être activé pour utiliser les lignes suivantes
Value: true, false -->
<entry key="dev.mode">true</entry>
<!-- Affiche en jeu la mini interface affichant le fps et les accès rapides
Value: true, false -->
<entry key="dev.auto.display.controler">true</entry>
<!-- Affiche la fenêtre listant les événements du jeu
Value: true, false -->
<entry key="dev.auto.display.eventUtil">false</entry>
<!-- Affiche l'utilitaire pour créer ou jouer des scripts Lua
Value: true, false -->
<entry key="dev.auto.display.luaUtil">false</entry>
</LangFile>
Vous pouvez le modifier si vous souhaitez faire apparaitre par défaut certains utilitaires par défaut.
Enfin, le fait d'activer le mode dev ne bloque plus le client si vous connecté un compte qui n'a pas accès à la bêta. Pour rappel, seul les comptes ayants accès à ce forum peuvent utiliser le mode dev.