Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2007, 15h22   #1
Invité de passage
 
Étudiant
Inscription : décembre 2007
Messages : 1
Détails du profil
Informations personnelles :
Âge : 22

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 1
Points : 0
Points : 0
Par défaut Traduction" basique de _root en AS3.0

Bonjour à tous !
Je pratique depuis longtemps l'AS2.0, et je viens de passer en AS3.0, qui est vraiment beaucoup mieux ! Mais bon j'ai quelques soucis de "traduction".
En effet, meme apres beaucoup de recherche, je n'arrive pas à acceder à des variables ou à des fonctions, qui sont déclarées dans le script pricipal (l'ancien _root), depuis un clip. En gros pour traduire l'ancien :
_root.fct() ou this._parent.var1

J'ai essayer toutes les combinaisons avec root, stage, Stage, this.parent, this.root, etc...
J'ai seulement trouvé une commande "bricolage", qui fonctionne mais qui n'est pas puissante et plutot lourde à utiliser : this.parent["fct"].call();
J'ai exactement le meme probleme pour nextFrame() depuis un clip pour changer la tete de lecture de la scene pricipale...
Bon voila j'espere que vous pourais m'élucider mon probleme !
Merci beaucoup !

nicoool18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 15h55   #2
Membre émérite
 
Avatar de thecaptain
 
Étudiant
Inscription : décembre 2003
Messages : 916
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2003
Messages : 916
Points : 898
Points : 898
Salut,

En effet le _root traditionnel n'est plus (et c'est tant mieux ). En AS3, il faut penser plus OOP Donc pour faire des méthodes globales, préfères créer une classe avec des méthodes statiques à l'intérieur que tu pourras appeler via
Code :
MaClassUtils.maMethode(...);
Exemple pour les méthodes :
Code :
1
2
3
4
5
6
7
package
{
   public class MaClassUtils
   {
      public static function maMethod(...):void { ... }
   }
}
@++
__________________
API ScrollBar (AS2)
Masapi (Massive Loading API) (AS3)
Lost in AStorm
thecaptain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2008, 14h32   #3
Membre confirmé
 
Avatar de venomelektro
 
Inscription : avril 2004
Messages : 496
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : avril 2004
Messages : 496
Points : 250
Points : 250
en clair , comment j accede a l ancien root depuis une classe ?

dans un package et une classe :

Code :
1
2
 
_root.num_users.text = this.num_users;
ne fonctionne pas .. et je trouve pas avec Stage et co comment faire...
__________________
telecharger jeux pc
venomelektro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 11h05   #4
Membre actif
 
Inscription : avril 2007
Messages : 126
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 126
Points : 150
Points : 150
Attention, le stage n'est pas le _root.

En AS2, le _root, c'était un four tout bordélique où on mélangeait objets graphiques, variables et fonctions. L'AS2, même s'il présentait des possibilités objet est un langage à l'architecture procédurale.

En AS3, tu es dans un cadre très strict orienté objet (il va certainement falloir que tu te formes un peu à la POO). Cela signifie qu'il n'y a pas de _root, il n'y a que des objets indépendants les uns des autres. Avec un objet particulier, important, qui est le container de l'application (qu'on pourrait éventuellement considérer comme le _root).

Un objet (y compris le container de l'application) ne peut pas en appeler un autre, ou être lui-même appelé, sans passer par une référence à cet objet. En gros, il faut lui passer une référence (dite aussi pointeur) d'un objet A à un objet B pour que celui-ci puisse l'appeler.

Si tu veux reproduire un _root, il te faut une classe statique globale dans laquelle tu fourres tout. Ce qui est simple mais fortement déconseillé, car c'est tenter de reproduire une programmation procédurale dans un environnement objet...

C'est le code que te proposes theCaptain.

Enfin, le stage, c'est la base de la pile graphique. Autrement dit, le stage c'est un empilement virtuel d'objets graphiques, qui sert à la représentation et l'organisation visuelle de l'application. Autrement dit, le stage ne contient pas en soi de variables ou de méthodes.

Pour terminer, j'ajoute que la documentation de Flash a des chapitres très clairs, bien faits et détaillés sur la programmation objet. Je t'engage à les lire attentivement, sinon tu n'arriveras pas à t'en sortir avec l'AS3 qui, en terme d'architecture, n'a rien à voir avec l'AS2.
David Buff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2008, 11h12   #5
Membre actif
 
Inscription : avril 2007
Messages : 126
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 126
Points : 150
Points : 150
Heu... à la vue du nombre impressionnant de lectures de ce thread, j'imagine qu'il y a un paquet de gens qui se posent la question...

J'insiste donc sur le fait que:
- en AS2 vous êtes en programmation procédurale
- en AS3 vous êtes en programmation objet

Cela n'a rien à voir. Et en ce sens, l'AS3 n'est pas simple. Je ne saurais que trop vous encourager à vous former à la POO (programmation orientée objet). Et en particulier à lire la doc spécifique de Flash prévue à cet effet.
David Buff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2008, 20h15   #6
Invité de passage
 
Inscription : août 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 2
Points : 2
Points : 2
Par défaut Root

Salut,
pour ciblé un clip ou une variable en AS3, tu dois d'abord localiser ton clip ou variable ou elements avec la fonction MovieClip puis tu ecrit le reste comme en AS2.
Exemple :
Variable RT declarer dans le clip principale.
var rt:int = 10;
Besoin dans le clip nommer MC_Math.
var Total:int = 58 * MovieClip(parent).rt;

Si tu veut utiliser un gotoandplay dans un clip nommer MC_Cadre contenu dans la scene principale idem :
exemple :
MovieClip(parent).MC_Cadre.gotoAndPlay(2);

Bon courage
benoitdb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h20.


 
 
 
 
Partenaires

Hébergement Web