IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

[AS3 + Masques] Plusieurs occurences dans un masque?


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Par défaut [AS3 + Masques] Plusieurs occurences dans un masque?
    Bonjour,

    J ai un petit soucis de débutant ( ce que je suis )
    J'ai crée un masque qui affiche donc une image en arriéré plan lors du déplacement d'un objet. jusque la ça va mais lorsque je veut en crée un deuxieme cela ne fonctionne pas oO.
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    mask1.addEventListener(Event.ENTER_FRAME, fEnterFrame);
    //mask2.addEventListener(Event.ENTER_FRAME, fEnterFrame);
     
    function fEnterFrame(e:Event):void{
    	mask1.x+=1;
    	//mask2.x+=1;
    }
    Si je décommente ce qui est en commentaire j'obtient comme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ReferenceError: Error #1065: La variable mask2 n'est pas définie.
    	at MonProj_fla::MainTimeline/fEnterFrame()
    Ce que je comprend pas c'est que mask1 est crée de la meme facon que mask2!

    Merci d'avance!

  2. #2
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    Dans le code que tu nous fournis tu as pas mis la ou tu créé les mask donc dur de t'aider , ton code ne contenant pas d'erreur.

    Verifie que t'a une ligne genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var mask2:Shape = new Shape();
    Apres faire 2 event.Enter_Frame est rarement utile et prend beaucoup de memoire (comme tout les events, moins il y en a mieux c'est ! )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Par défaut
    Salut, merci pour ta réponse,

    Dans le code que tu nous fournis tu as pas mis la ou tu créé les mask donc dur de t'aider , ton code ne contenant pas d'erreur.
    J'ai mon masque puis rattaché à celui ci, une image sur laquel je place ce que je veux qu'il utilise comme étant masque: mes fameux mask1 et mask2 donc

    J'ai mis tout le code dans la frame principal.
    Ce qui est bizar c'est que je crée un rectangle dans mon masque avec une occurrence mask1 ( qui lui est pris en compte, avec aucune déclaration! ) et que mask2 lui ne fonctionne pas.

    Que me conseils tu pour faire déplacer mon masque en AS si ce n'est avec des listener?

    Merci de ton aide.

  4. #4
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    Il faut un listerner mais les deux listener plus haut ne servent à rien , un seul aurait suffit , dans ton code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mask1.addEventListener(Event.ENTER_FRAME, fEnterFrame);
    mask2.addEventListener(Event.ENTER_FRAME, fEnterFrame);
     
    function fEnterFrame(e:Event):void{
    	mask1.x+=1;
    	mask2.x+=1;
    }
    fEnterFrame sera appelé deux fois.

    Sinon je ne comprend pas pourquoi tu ne met pas ton code source (meme simplifié) pour qu'on puisse t'aider parce que je veux bien te mettre un code source qui marche pour te montrer mais bon ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    var img:Shape = new Shape();
    img.graphics.beginFill ( 0x000000 );
    img.graphics.drawRect (0,0,400,400);
     
    var myMask:Sprite = new Sprite();
     
    var mask1:Shape = new Shape();
    mask1.graphics.beginFill ( 0x000000 );
    mask1.graphics.drawRect (0,0,30,30);
     
    var mask2:Shape = new Shape();
    mask2.graphics.beginFill ( 0x000000 );
    mask2.graphics.drawRect (0,40,30,30);
     
    myMask.addChild (mask1);
    myMask.addChild (mask2);
     
    addChild (myMask);
    addChild (img);
    img.mask = myMask;
     
    myMask.addEventListener (Event.ENTER_FRAME, enterFrame);
     
    function enterFrame ( e:Event ):void {
    	myMask.x += 3;
    	if ( myMask.x >= myMask.width+img.width) {
    		myMask.x=-30;
    	}
    }
    Ce code est fait a partir de ce que j'ai compris dans ton cas mais un code source est bien mieux que de longues explications !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Par défaut
    Encore merci pour tes reponses .

    Tu as tout mon codes sources^^
    je n'utilise pas de new shape pour crée mes objet, ils sont crée directement depuis la boite a outils, j'ai défini mask1 comme étant une occurence d'un rectangle.

    J'espere que tu vois ce que je veux dire

  6. #6
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    hum , oki ! Je comprend mieux pourquoi il y avait si peux de code source , je suis plus habitué a l'interface graphique

    j'ai défini mask1 comme étant une occurence d'un rectangle.
    D'accord et mask2 ? Pareil , glissé déposé ton clip/graphique sur la scène et nommé se dernier mask2 ? Tu as bien qu'une seul image clef sur ton anim ?

    T'es deux mask (mask1 et mask2) sont dans un objet mask ?

    Je viens de me faire un test avec des clips pour faire des mask et tout fonctionne

    Verifie bien les noms , attention au majuscule / minuscule , au numero , etc ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/07/2013, 08h41
  2. Rechercher plusieurs occurences dans un fichier
    Par snorky94 dans le forum VBScript
    Réponses: 2
    Dernier message: 21/02/2013, 10h34
  3. [VBExpress2005] Point décimal/virgule dans un masque de saisie
    Par BassBeat dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/05/2006, 23h57
  4. Réponses: 2
    Dernier message: 17/02/2005, 00h00
  5. problème avec masque de saisie dans table
    Par porki dans le forum Access
    Réponses: 6
    Dernier message: 13/10/2004, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo