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 :

Accéder à stage depuis une classe exportée pour AS


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de foolib
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 111
    Par défaut Accéder à stage depuis une classe exportée pour AS
    Bonjour bonsoir !

    voilà je fais un casse briques,
    Mon objet brique est un Movieclip exporté pour actionScript depuis la bibliothèque, que j' instancie sur la scene à la construction d'un niveau.

    j'ai un ecouteur de type Event.ENTER_FRAME sur chaque brique qui test s'il y a collission avec la balle de la scene.
    Ce code est sur la première image de mon Movieclip

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var collisiondetection:Collision = new Collision();
    var col:Boolean=false;
    
    this.addEventListener(Event.ENTER_FRAME,checkCollision);
    
    function checkCollision():void {
    	this.col = collisiondetection.isColliding(this as MovieClip, stage.balle);
    	if ( this.col != false ) {
    		stage.balle.y*=-1;
    	}
    }
    Le problème est que j'obtiens 2 fois l'erreur suivante (normal certains me diront :p )
    Accès à la propriété balle peut-être non définie, via la référence de type static flash.display:Stage.
    Sans doute ne connait il pas stage depuis le scop de cette classe, alors que dois-je faire ?

    la balle est instancié au départ de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var balle:ball = new ball();
    Mon but est de modifier la trajectoire de ma balle qui se trouve sur la scène, mais impossible d'y accéder comme ça


    Si vous pouvez me suggérer une autre manière je suis preneur !
    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
    Pour accéder a stage il faut qu'il soit sur le stage , tant qu'il est pas dessus , il y accede pas.

    Solution :

    Tu ajoute un event ADDED_TO_STAGE dans lequel tu rajoutera l'event ENTER_FRAME

  3. #3
    Membre confirmé Avatar de foolib
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 111
    Par défaut
    Okey merci j'essaierai ça demain !
    affaire à suivre

  4. #4
    Membre confirmé Avatar de foolib
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 111
    Par défaut Event.ADDED_TO_STAGE non détecté ?
    Alors j'ai suivi tes instructions, et fait de même pour l'objet ball, je n'ai plus d'erreur mais ça ne fonctionne pas :

    Comme si l' evenement n'était pas propagé.
    j'ai mis des trace('!'); pour vérifier que ça passe dans la fonction callBack, mais ça n'y passe pas ...

    Voilà le code contenu dans l'objet de type ball :
    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
    var ball_velocity:int =1;
    var ball_vx:int=1;
    var ball_vy:int=1;
    
    addEventListener(Event.ADDED_TO_STAGE, construct);
    
    function construct(evt:Event){
    	trace('!');
    	evt.target.x = evt.target.stage.stageWidth - (evt.target.stage.stageWidth/2);
    	evt.target.y =evt.target.stage.stageHeight - (evt.target.stage.stageHeight/2);
    	evt.target.addEventListener(Event.ENTER_FRAME, moveBall);
    	trace(evt.target);
    }
    
    function moveBall(evt:Event){
    		//position
    		evt.target.x += evt.target.ball_velocity*evt.target.ball_vx;
    		evt.target.y += evt.target.ball_velocity*evt.target.ball_vy;
    }
    nb : l'objet ball est evidement instancié puis ajouté à la scène sur la première image de celle-ci.
    Remplacer evt.target par 'this' dans les fonctions callBack ne change rien

  5. #5
    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
    l'objet ball est une class ou un objet sur la scene ?

    dans le premier cas je comprend pas dans le second il faut :

    ball.addEventListener(Event.ADDED_TO_STAGE, construct);

  6. #6
    Membre confirmé Avatar de foolib
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 111
    Par défaut
    l'objet de type ball est un objet exporté depuis la librairie vers actionscript via ClicDroit > liaison.
    Il doit réagir comme une classe non ?

    je l'instancie sur la scene comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var balle:ball = new ball();

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/10/2010, 11h10
  2. Réponses: 1
    Dernier message: 31/08/2008, 19h04
  3. accéder a une textbox depuis une class
    Par Alex35 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 30/07/2008, 16h32
  4. Accéder aux objets de la form1 depuis une class
    Par Jimmy_S dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/03/2007, 22h47
  5. [C#] Accéder à un control depuis une class
    Par choas dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/05/2006, 13h43

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