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 MX] Nom variable et appel de fonction onRelease


Sujet :

Flash

  1. #1
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut [FLASH MX] Nom variable et appel de fonction onRelease
    Mes occurences se nomment c0 c1 c2

    si dans mon code je fais ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c0.onRelease = function()
    le click sur l'occurence c0 effectue la fonction
    Clip: Cible="_level0.c0"
    Variable _level0.c0.onRelease = [fonction 'onRelease']
    Par contre si je construits mon appel de fonction 'à la volée'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    "c"+[i].onRelease = function()
    erreur :
    La partie gauche de l’opérateur d’affectation doit être une variable ou une propriété.
    "c"+[i].onRelease = function()
    si je teste ainsi:
    mavar = "c"+[i];
    mavar.onRelease = function()
    j'ai pas d'erreur mais la liste des variables ne reprend pas la fonction :
    Variable _level0.mavar = "c2"
    Clip: Cible="_level0.c0"
    mes occurence ne sont pas clicables, j'ai essayé mavar = mavar.toString() mais ça marche pas non plus.
    Merci de votre aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  2. #2
    Membre émérite
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Points : 2 695
    Points
    2 695
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "c"+[i].onRelease = function()
    essaye plus tot ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ["c"+i].onRelease = function()

  3. #3
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    J'ai l'erreur suivante :
    *Erreur** Séquence = Séquence 1, calque = Carte, image = 1 :Ligne 19 : .' inattendu
    ["c"+i].onRelease = function()
    Ps i = indice de ma boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for (var i =0; i < Noeud.length; i++)
    {
    Lacolor = Noeud[i].attributes.couleur;
    ma_color = new Color("c"+[i]);
    ma_color.setRGB(Lacolor);
     
    ["c"+i].onRelease = function()
    	{
    	...
    Merci de ton aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  4. #4
    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
    Salut,

    il faut mettre le clip conteneur devant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clipConteneur["c"+i].onRelease = function(){...}
    Exemple si le code se trouve sur le même calque que tes objets "c"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this["c"+i].onRelease = function(){...}
    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

  5. #5
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    mes occurences c0 c1 c3 sont sur le calque carte auquel est associé l'action.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for (var i =0; i < Noeud.length; i++)
    {
    Lacolor = Noeud[i].attributes.couleur;
    ma_color = new Color("c"+[i]);
    ma_color.setRGB(Lacolor);
    this["c"+i].onRelease = function()
    {
    var Ncanton = Nstat.childNodes[0];
    var Ncontrat = Ncanton.childNodes[0];
    var contrat = Ncontrat.nodeValue;
    _root.Infos.text = contrat;
    }
    Les occurences ne sont pas clicables malgrès this["c"+i].onRelease = function()
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  6. #6
    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
    Essaye :

    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
    for (var i =0; i < Noeud.length; i++)
    {
      mafunction(i);
    }
     
    function mafunction(i:Number)
    {
      Lacolor = Noeud[i].attributes.couleur;
      ma_color = new Color("c"+[i]);
      ma_color.setRGB(Lacolor);
      this["c"+i].onRelease = function()
      { 
        var Ncanton = Nstat.childNodes[0];
        var Ncontrat = Ncanton.childNodes[0];
        var contrat = Ncontrat.nodeValue;
        _root.Infos.text = contrat;
      }
    }
    Sinon ce code, il se trouve déjà dans une fonction, ou direct sur la scène??
    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

  7. #7
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    J'ai fais comme tu m'as écrits, mais là même coloration en se fait plus...
    J'ai un calque sur la scène qui s'appele Carte, et sur lequel est posé mes 3 occurences (c0 c1 c2). Sur ce calque se trouve le code action script.

    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  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
    Peux-tu mettre, si c'est pas trop long, tout le code du calque, avec le chargement du xml ... ?
    Ou bien si c'est possible le .fla en ligne?
    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
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Action Script
    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
    donnees_xml = new XML(); 
    donnees_xml.ignoreWhite = true; 
    donnees_xml.onLoad = function(ok) 
    {
    if (ok){
    Noeud = this.firstChild.childNodes;
    NPrincipal = this.childNodes[0];
    Nstat = NPrincipal.childNodes[0];
     
       for (var i =0; i < Noeud.length; i++)
      {
      Lacolor = Noeud[i].attributes.couleur;
      ma_color = new Color("c"+[i]);
      ma_color.setRGB(Lacolor);
    this["c"+i].onRelease = function() //Ici Erreur
    // par exemple c1.onRelease = function() fonctionne je vais pas taper c1 c2 c3 à la main ...
    	{
    	var Ncanton = Nstat.childNodes[0];[1]; 
    	var Ncontrat = Ncanton.childNodes[0];
    	var contrat = Ncontrat.nodeValue;
    	_root.Infos.text = contrat;
    	}
     }
        }
    }
    donnees_xml.load("datacolor.xml");
    Fichier xml
    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
     
    <?xml version="1.0" ?>
    <statistiques> 
    	<canton num="1" couleur="0x993366">
    		<DonneesA>25</DonneesA>
    		<DonneesB>10</DonneesB>
    	</canton> 
    	<canton num="2" couleur="0x663399">
    		<DonneesA>30</DonneesA>
    		<DonneesB>10</DonneesB>
    	</canton> 
    	<canton num="3" couleur="0x336699">
    		<DonneesA>25</DonneesA>
    		<DonneesB>10</DonneesB>
    	</canton> 
    </statistiques>
    Pour la mise en ligne je tiens au courrant en tout cas merci
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  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
    Voilà comment j'aurais fait

    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
    var donnees_xml = new XML();
    donnees_xml.ignoreWhite = true;
    donnees_xml.onLoad = function(ok) {
    	if (ok) {
    		for (var i = 0; i<this.firstChild.childNodes.length; i++) {
    			traitementCanton(i);
    		}
    	}
    };
     
    donnees_xml.load("datacolor.xml");
     
    function traitementCanton(i) {
    	var Ncanton = donnees_xml.firstChild.childNodes[i];	// ieme noeud canton
    	var Lacolor = Number(Ncanton.attributes.couleur);
    	var ma_color = new Color("c"+[i]);
    	ma_color.setRGB(Lacolor);
    	var Ncontrat = Ncanton.childNodes[0]; 			// Noeud DonneesA
    	var contrat = Ncontrat.childNodes[0].nodeValue; // Valeur du noeud DonneesA
    	this["c"+i].onRelease = function() {
    		this._parent.Infos.text = contrat;
    		// J'ai supposé que Infos était sur le même calque que c0,c1,...
    	};
    }
    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 confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Merci ça marche impecable
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Appeler une fonction par son nom dans une variable
    Par whitespirit dans le forum Langage
    Réponses: 16
    Dernier message: 18/06/2008, 11h23
  2. Appeler une fonction dont le nom dépend d'une variable
    Par Cthulhu 22 dans le forum Langage
    Réponses: 7
    Dernier message: 14/08/2007, 16h01
  3. [FLASH MX] nom variable pour une fonction
    Par totoche dans le forum Flash
    Réponses: 2
    Dernier message: 20/12/2005, 14h00
  4. [FLASH MX] Appel de fonction
    Par celine31 dans le forum Flash
    Réponses: 5
    Dernier message: 20/10/2004, 13h44
  5. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46

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