Forums Développement Multimédia

Aller au contenu

Cibler l'appli FlashBuilder depuis un Composant Flash Professionnal ?

CODE

1 réponse à ce sujet

#1 proto38

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 04 August 2014 - 17:54 PM

Bonjour,
je suis enseignant en lycée pro et je désire développer un modeste jeu sérieux sur tablette.
Vous l'aurez compris je suis développeur "amateur", je bidouille sur Flash Pro et Flash Builder.

Je me permets de renouveller et préciser une question posée dans le forum général, mi juillet :

je recherche comment appeler une fonction déclarée dans Flash Builder, depuis l'animation flash. Cette animation flash est un composant flash professionnal, créé depuis le fichier flash builder, avec une balise <ns1:MyClass1 x... >

Voici le code principal du projet FlashBuilder :


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
          xmlns:s="library://ns.adobe.com/flex/spark"
          xmlns:ns1="*"
          applicationDPI="160">
<fx:Script>
  <![CDATA[
        protected function fonctionFB():void {
   trace("fonction Flash Builder appelée");
  }
         
  ]]>
</fx:Script>

<fx:Declarations>
  <!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
</fx:Declarations>
<ns1:MyClass1 id="animFlash" x="226" y="32" width="327" height="200"/>
</s:Application>
 


Dans mon fichier flash, animFlash, j'ai essayé un naïf :


import flash.events.Event;
btnFlash_btn.addEventListener(MouseEvent.CLICK,appelFB);
function appelFB(pEvt:Event) : void {
(parent as MovieClip).fonctionFB();
}
 


Mais, bon, ça marche pas, j'ai ce message d'erreur :


TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at MyClass1/appelFB()
 


Par avance, merci pour votre lecture et vos conseils.

#2 Tonic

    Plop

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5712 messages

Posté 25 August 2014 - 13:42 PM

Salut,

bizarre ce que tu cherches à faire, appeler une méthode du parent, à partir d'un enfant, c'est pas très "best practice" ;)

Tu peux peut être y arriver tout de même, avec un code de ce genre :


var app:DisplayObject = parent.getChildAt(0);
app["fonctionFB"]();
 

En toute logique, parent devrait être le SystemManager, et le childAt(0) l'application Flex. Ensuite tu appelles la méthode "fonctionFB" par le bien la propriété "app".

Par contre faire bien attention de mettre la méthode public, sinon tu n'y auras pas accès.

+++ ^^



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP