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

Flash Discussion :

[FLASH 8] _width/_height : valeur erratique si l'objet est en mouvement


Sujet :

Flash

  1. #1
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut [FLASH 8] _width/_height : valeur erratique si l'objet est en mouvement
    salut les gars !


    ca fait 3 jours que je bosse sur un systeme de gestion des collisions sacrement chiant et je viens de remarquer que 95% des problemes que j'ai rencontré etaient du a un truc d'une stupidité phénoménale ...

    si on lit les valeurs des propriétés _width/_height d'un clip en déplacement -> elles sont fausses
    le décalage est toujours positif et va jusqu'a +40%

    avec tous les autres languages quand vous créez une forme et que vous la faites bouger la lecture des propriétés de largeur et de hauteur ne change pas -> mais avec flash elles changent aléatoirement !!
    (j'ai testé avec delphi)


    j'ai mis un swf dans lequel je test le probleme ... je tiens a remercier adobe pour son boulot d'une qualité phénoménal
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 47
    Points : 54
    Points
    54
    Par défaut
    Salut,
    tu peux montrer le code souce qui te donne se résultat?

  3. #3
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mcBalle.onEnterFrame = function() {
    	this._parent.txLarg.text = this._width;
    	this._parent.txHaut.text = this._height;
    };
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 47
    Points : 54
    Points
    54
    Par défaut
    Et au niveau du déplacement ?

    Tu peux mettre le fla pour que je regarde d'où ça peut venir, il y a un truc qui m'échape.

  5. #5
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    mais en quoi definir les valeurs _x/_y pour le déplacement changerait la taille du clip ... ou le test de collision ... ou les autres tests .. etc !!!???

    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
    30
     
     
    // ---------------------------------
    // Deplacement balle
    // ---------------------------------
    mcBalle.onEnterFrame = function() {
    	// position / vitesse / deceleration
    	this._x += this.nbVitX *= nbFriction;
    	this._y += this.nbVitY *= nbFriction;
     
    	// -------------------- 
    	if( nbLargeurMin > this._width )
    		nbLargeurMin = this._width;
    	// -------------------- 
    	if( nbLargeurMax < this._width )
    		nbLargeurMax = this._width;
     
    	// --------------------           
    	this._parent.txLargMin.text = nbLargeurMin;
    	this._parent.txLargMax.text = nbLargeurMax;
     
    	// --------------------           
    	this._parent.txLarg.text = this._width;
    	this._parent.txHaut.text = this._height;
     
    	// --------------------        
    	this._parent.txVitesseX.text = this.nbVitX;
    	this._parent.txVitesseY.text = this.nbVitY;
    };
    // onEnterFrame
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 47
    Points : 54
    Points
    54
    Par défaut
    En rien,
    je n'ai plus Flash8 sur cette machine donc je peux pas tester le code, mais à ma connaissance le code que tu as écris ne dois pas faire varier la taille du clip.

  7. #7
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    et oui c'est bien ca le probleme et ce qui a tendance a "legerement" m'enerver.
    le _width/_height est utilisé dans le code apres la détection de la collision et ces ecarts m'ont fait cherché pendant des heures la source du probleme ... evidemment j'ai TOUT (absolument tout) testé avant de penser que ces valeurs pouvaient etre la cause des problemes
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

  8. #8
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Bizarre
    Je testerai de chez moi. Moi non plus, pas de Flash 8 sur cette machine
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  9. #9
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    T'as un fla pour tester ?
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  10. #10
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Je pense avoir compris. Cela vient de la rotation que tu appliques à ta balle.
    Ta balle fait bien 15x15.
    Cela correspond au dimension d'un carré entourant ta balle.
    Lorsque tu fais une rotation de ta balle, ce carré tourne egalement. La largeur varie donc entre 15 et 15 * racine de 2 = 21.2
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  11. #11
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    ben j'ai pensé a ceci cet apres-midi mais je trouve ca bizarre par rapport au moteur interne des MC ... je pensais que le cube/rectangle placé autour de la forme réel etait "imaginaire" et ne servait que pour simplifier la detection des collisions !?

    oui, le mcBalle fait bien 15*15px et ton raisonnement est bon, c'est bizarre que je n'ai jamais remarqué ce "probleme" jusqu'a maintenant, j'ai surement jamais utilisé _width/_height quand une _rotation etait appliqué !?


    conclusion : stocker la valeur de largeur et hauteur d'un MC quand celui est fixe pour l'utiliser ensuite quand une rotation est appliqué -> meme si ce MC est un cercle
    Le plus grand arbre est né d'une graine menue, une tour de neuf étages est partie d'une poignée de terre.
    Mon blog : http://web.codeur.free.fr

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/06/2006, 13h08
  2. Réponses: 2
    Dernier message: 08/06/2006, 13h48
  3. Réponses: 3
    Dernier message: 29/05/2006, 17h04
  4. [FLASH 8] Detecter changement valeur d'une variable
    Par orelero dans le forum Flash
    Réponses: 1
    Dernier message: 18/02/2006, 18h25
  5. Réponses: 2
    Dernier message: 29/05/2005, 19h50

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