Forums Développement Multimédia

Aller au contenu

- - - - -

Probleme de drag vertical (AS3)

CODE FlashCC

5 réponses à ce sujet

#1 cdeluca

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 06 November 2014 - 15:21 PM

Bonjour,
J'ai un problème de drag vertical sur Flash cc AS3.

Le script suivant ne fonctionne que sur la première image.
Le conteneur (content_mc) est situé sur la ligne inférieure.

Avec le TypeError suivant :
TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.

// define lock on y-axis
var LOCKY:Number = content_mc.x;

// MouseEvent.MOUSE_MOVE
stage.addEventListener(MouseEvent.MOUSE_MOVE, _mouseMove);
function _mouseMove(e:MouseEvent):void
{
  if(content_mc.x != LOCKY) content_mc.x = LOCKY;
}

// dragging
content_mc.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDown);
function _mouseDown(e:MouseEvent):void
{
  content_mc.startDrag();
  content_mc.addEventListener(MouseEvent.MOUSE_UP, _mouseUp);
}

// dropping
function _mouseUp(e:MouseEvent):void
{
  content_mc.stopDrag();
  content_mc.removeEventListener(MouseEvent.MOUSE_UP, _mouseUp);
}

Fichier(s) joint(s)

  • Fichier joint  Archive.zip   40.57 Mo   17 téléchargement(s)


#2 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 07 November 2014 - 09:07 AM

Bonjour cdeluca.

Pour contraindre un drag, tu peux utiliser le paramètre de la fonction startDrag();
On peut lui passer un rectangle en paramètre qui limite la zone du drag.
Pour limiter à un drag vertical, il suffit de passer un rectangle de largeur 1.
En procédant ainsi, tu devrait pouvoir éviter d'ajouter et d'enlever sans arrêt des écouteurs. A mon avis, ce sont eux qui causent le problème. Il doit y avoir un moment dans la logique ou tu tentes d'enlever un écouteur qui n'existe pas…
L'autre possibilité, c'est la valeur du stage qui peut être non définie si tu masques le clip à un moment… mais difficile d'en dire plus sans voir l'ensemble du projet et je ne peux pas ouvrir ton fichier Flash.


NB : quand tu places du codes dans un de tes messages, tu peux utiliser le bouton en forme de <> qui permet de profiter de la mise en forme automatique du code.

#3 gustave02

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 166 messages

Posté 07 November 2014 - 12:02 PM

bonjours
frame2 tu mets

stage.addEventListener(MouseEvent.MOUSE_MOVE, this._mouseMove);

et quand tu reviens sur t'as frame 1 l' écouteur est toujours présent donc des que la souris bouge la fonction _mouseMove est appelé.


function _mouseMove(event:MouseEvent) : void {
                    if (this.content_mc.x != this.LOCKY) {  this.content_mc.x = this.LOCKY;
            }
 

et donc comme content_mc.n'est plus présent sur la scène tu as un message d'erreur
TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul. (content_mc est l'objet nul)

pour essais tu peux ajouter a ta fonction

function fl_ClickToGoToAndStopAtFrame(event:MouseEvent) : void
            {
                    gotoAndStop(2);
                    stage.removeEventListener(MouseEvent.MOUSE_MOVE, this._mouseMove);
            }
 

voila j' espère avoir répondu a ta demande.
@+ gustave

#4 cdeluca

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 07 November 2014 - 15:04 PM

Merci pour ta réponse.

Mais j'ai toujours le meme pb.

J'ai bien ajouté la fonction (mais est ce bien ca ?) :

BTN_CHARGER_PDF01.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame);

function fl_ClickToGoToAndStopAtFrame(event: MouseEvent): void {
gotoAndStop(2);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, this._mouseMove);
}


BTN_CHARGER_PDF02.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_3);

function fl_ClickToGoToAndStopAtFrame_3(event: MouseEvent): void {
gotoAndStop(3);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, this._mouseMove);
}

#5 gustave02

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 166 messages

Posté 07 November 2014 - 16:51 PM

le fla.

Fichier(s) joint(s)

  • Fichier joint  test03.fla   267.33 Ko   18 téléchargement(s)


#6 cdeluca

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 07 November 2014 - 17:42 PM

Merci ,

Mais le FLA en question est celui en pj (avec inertie).



.

Fichier(s) joint(s)






Répondre à ce sujet



  

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