actionscript, pb ciblage ou transmission de variable?

actionscript, pb ciblage ou transmission de variable? - Flash/ActionScript - Programmation

Marsh Posté le 01-07-2007 à 23:41:51    

Bonjour à tous,
 
deux petits bugs dont je ne trouve pas la source:
 
Dans la fonction prechargement, impossible d'utiliser le ciblage relatif, j'ai substitué mes this/this._parent par _root et la ca fonctionne... Je vois pas trop pourquoi?
 
Deuxieme souci,
quand je lance les fonctions menuactif(i) à partir de la boucle for dans la fonction prechargement, la deuxieme partie du code ne s'execute pas? Cette meme fonction appelé hors d'une boucle for marche impec...
 
J'ai commenté le code en dessous pour que ca soit plus clair.
 
Merci à ceux qui y jetterons un oeil  :jap:  
 
 

Code :
  1. //"Voila la fonction d'appel, ciblage absolu faute de mieux!"
  2. function prechargement() {
  3. _root.prech.nextFrame();
  4. if (_root.prech._currentframe == 8) {
  5.  for (i=1; i<=5; i++) {
  6.   _root.menuActif(i);
  7.  }
  8. }
  9. }
  10. //"Voila la fonction qui ne s'execute pas correctement"
  11. function menuActif(id) {
  12. this["mouche"+id].onEnterFrame = function() {
  13.  this._rotation = Math.atan2(((this.id-1)*100)+150-this._y, -200-this._x)*180/Math.PI;
  14.  this._x += (-200-this._x)/20;
  15.  this._y += (((this.id-1)*100)+150-this._y)/20;
  16.  this._parent["myDash"+this.id].lineTo(this._x, this._y);
  17.  if (this._x<=-30) {
  18.   this._parent.tracePath(this.id);
  19.  }
  20. //"jusque la tout marche correctement, la partie ci dessous ne s'execute pas lorsque je met un trace apres le if il est executé, en revanche le mouvement ne s'execute pas."
  21. //"peut etre le fait d'écraser le onEnterFrame qu'il apprécie pas, mais quand j'appelle cette meme fonction hors d'une boucle for tout marche corectement?"
  22.  if (this._x<=-150) {
  23.   this.xinit = this._x;
  24.   this.yinit = this._y;
  25.   this.onEnterFrame = function() {
  26.    this._rotation = Math.atan2(((this.id-1)*100)+150-this.yinit, 125-this.xinit)*180/Math.PI;
  27.    this._x += (125-this._x)/20;
  28.    this._y += (((this.id-1)*100)+150-this._y)/20;
  29.    this._parent["myDash"+this.id].lineTo(this._x, this._y);
  30.    if (this._x>100) {
  31.     this._parent["menu"+id+"_txt"]._x += (10-this._parent["menu"+id+"_txt"]._x)/10;
  32.    }
  33.   };
  34.  }
  35. };
  36. }

Reply

Marsh Posté le 01-07-2007 à 23:41:51   

Reply

Marsh Posté le 02-07-2007 à 00:59:29    

Bon j'ai finalement résolu mon problème.
 
Tout venait d'un clearInterval mal placé!
 
Ca m'as permis de découvrir un truc bizarre.
Une fonction appelée par un setInterval ne permet pas le ciblage relatif?
 
En gros si je fait:
 
funciton test(){trace(this)}
test();
 
//---> output:  _level0
normal donc, ca s'initie sur le _root
 
Mais quand je fait :
var p=setInterval(test,1000)
//---> output: undefined
 
Je suis pas tres habitué aux setInterval donc peut etre que je fait pas ça correctement?
 
Comment réacceder au _root depuis ma fonction test dans ces cas la?
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed