Forums Développement Multimédia

Aller au contenu

removeEventListener(Event.ENTER_FRAME, mafonction);

CODE Actionscript

6 réponses à ce sujet

#1 philippeonline

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 102 messages

Posté 08 August 2013 - 21:45 PM

Bonsoir,

Je souhaite faire un :

removeEventListener(Event.ENTER_FRAME, mafonction);

et ensuite :

gotoAndStop(2);


Ça marche sauf pour un écouteur d’événement (type ENTER_FRAME) qui me met une erreur :
Error #1009: Cannot access a property or method of a null object reference.

Cette écouteur est chargé d'afficher une occurrence sur la scène si une condition est réunit.
Il affiche justement une occurrence sur la scène au moment ou je souhaite faire mon :



removeEventListener(Event.ENTER_FRAME, mafonction);
gotoAndStop(2);
 

Le problème viens de là ? que faire ?

merci les pros !

#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6954 messages

Posté 08 August 2013 - 22:43 PM

Bonsoir,

Toujours le même problème qu'avec tes autres sujets, relations parent/enfant.

Quand tu ne met rien devant, la plupart des instructions que tu utilise et qui en ont besoin, admettent "this" comme parent.
Par exemple :

gotoAndStop(2);

Devrait en fait d'écrire :

this.gotoAndStop(2);

"this" étant l'objet d'affichage courant.

La question est : sur quel objet d'affichage tu souhaite aller à la frame 2 ?

#3 philippeonline

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 102 messages

Posté 09 August 2013 - 12:40 PM

Bonjour,

Si j'écris gotoAndStop(2); ca ne change rien.
Je souhaite simplement allez à la frame 2 qui ne contient rien, c'est pour faire un GAMEOVER !

#4 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6954 messages

Posté 09 August 2013 - 12:54 PM

Là où tu fais un : gotoAndStop(2);
Place un : trace(this);

Tu saura alors quel est l'objet est concerné par le gotoAndStop.

#5 philippeonline

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 102 messages

Posté 09 August 2013 - 13:04 PM

Hello,

le trace me dit ça : [object MainTimeline]

Voici la partie qui pose problème :


addEventListener(Event.ENTER_FRAME, affichagesequenceclic);

function affichagesequenceclic(evt:Event)

{

if (ballonRouge1.x <= 1166)
{
addChild(bonordre);
bonordre.x = 1078,9;
bonordre.y = 88;
}


if (bleu2.x <= 55)
{
removeChild(bonordre);

}

if (ballonBleu2.x <= 1166)
{
addChild(bonordre2);
bonordre2.x = 1078,9;
bonordre2.y = 88;

bonordre.visible = false;
//removeChild(bonordre);
bonordrefaux.visible = false;


}
if (ballonRouge1V3.x <= 1166)
{
addChild(bonordre3);
bonordre3.x = 1078,9;
bonordre3.y = 88;

bonordre2faux.visible = false;
bonordre2.visible = false;
//removeChild(bonordre);

}
if (bleuV3.x <= 55)
{
bonordre3.visible = false;
}

}
 

removeEventListener(Event.ENTER_FRAME, affichagesequenceclic); me donne une erreur après quoi il passe à la frame 2 et reste afficher
à l'écran l'occurence bonordre2.

bonordre2 est un clip (remarque il ne contient qu'une image) importer directement depuis la bibliothèque :

var bonordre = new Bonordre ();


#6 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6954 messages

Posté 09 August 2013 - 13:21 PM

Re,

Pour trouver la source d'un bug il est recommandé de commencer par indenter son code correctement, puis de le commenter ligne par ligne.

// ajoute un écouteur au clic sur la scène
addEventListener(Event.ENTER_FRAME, affichagesequenceclic);

// lorsque le joueur clique sur la scène
function affichagesequenceclic(e:Event):void{

    // si le ballon rouge est à moins de 116 pixels sur X
    if (ballonRouge1.x <= 1166){
        addChild(bonordre);            // ajoute "bonordre"
        bonordre.x = 1078,9;        // place le sur X
        bonordre.y = 88;            // place le sur Y
    }

    // si "bleu2" est à moins de 55 pixels sur X
    if (bleu2.x <= 55){
        removeChild(bonordre);        // retire "bonordre"
    }

    //
    if (ballonBleu2.x <= 1166){
        addChild(bonordre2);
        bonordre2.x = 1078,9;
        bonordre2.y = 88;

        bonordre.visible = false;
        bonordrefaux.visible = false;
    }
   
    //
    if (ballonRouge1V3.x <= 1166){
        addChild(bonordre3);
        bonordre3.x = 1078,9;
        bonordre3.y = 88;

        bonordre2faux.visible = false;
        bonordre2.visible = false;
    }
   
    //
    if (bleuV3.x <= 55)    {
        bonordre3.visible = false;
    }

}

Tu verra alors beaucoup mieux qui fait quoi et à quel moment.
Dans le code que tu donne je ne vois pas de "removeEventListener", donc difficile de dire si c'est lui qui pose problème.

Citation

removeEventListener(Event.ENTER_FRAME, affichagesequenceclic); me donne une erreur après quoi il passe à la frame 2 et reste afficher à l'écran l'occurence bonordre2.

Quelle est l'erreur renvoyée ?
A quel moment lance-tu ton "removeEventListener" ?
Es-tu sur qu'à ce moment là tu as bien déjà fait un "addEventListener" et que l'écouteur existe ?
Es-tu sur que ton programme passe bien en Frame 2 ?

#7 philippeonline

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 102 messages

Posté 09 August 2013 - 13:53 PM

Merci pour la réponse. :) je vais expliciter un peu mieux dans quelques temps.



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