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 :

variable language


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 50
    Par défaut variable language
    Bonjour

    je suis jeune flasheuse et je viens à partir d'un tuto de faire une animation qui gère le multilingue mais le tuto expliquait comment faire une animation multilingue sur flash avec du actionscript 3, mais la variable langue détectais la langue utilise par la machine de l'internaute (Capabilities.language alors que en faites je veux l'intégrer dans un site en php qui permet de sélectionner la langue à partir d'un formulaire.
    Voici le code actionscript

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    import flash.system.Capabilities;
     
    var _loader:URLLoader;
    var _req:URLRequest;
    var _chemin:String;
    var _lang:String;
    var _xml:XML;
     
    initialisation();
    function initialisation ():void
    {
    	_loader = new URLLoader();
    	_chemin = String ( 'xml/fleur.xml');
    	_req = new URLRequest(_chemin);
    	_loader.addEventListener(Event.COMPLETE, recupXML);
    	_loader.addEventListener(IOErrorEvent.IO_ERROR, erreurXML);
    	_loader.load( _req );
    }
    function erreurXML (ie:IOErrorEvent):void
    {
    	trace (ie);
    }
    function recupXML(e:Event):void
    {
    	_xml = new XML ( e.target.data);
    	_lang = Capabilities.language;
     
    	var txt1:XMLList;
    	var txt2:XMLList;
    	var txt3:XMLList;
    	var txt4:XMLList;
     
    	switch (_lang)
    	{
    		case 'fr':
    			txt1    = _xml.fleur.(@lang == 'fr').petale1.source
    			txt2    = _xml.fleur.(@lang == 'fr').petale2.source
    			txt3    = _xml.fleur.(@lang == 'fr').petale3.source
    			txt4    = _xml.fleur.(@lang == 'fr').petale4.source
    		break;
    		case 'en':
    			txt1    = _xml.fleur.(@lang == 'en').petale1.source
    			txt2    = _xml.fleur.(@lang == 'en').petale2.source
    			txt3    = _xml.fleur.(@lang == 'en').petale3.source
    			txt4    = _xml.fleur.(@lang == 'en').petale4.source
    		break;
    		case 'es':
    			txt1    = _xml.fleur.(@lang == 'es').petale1.source
    			txt2    = _xml.fleur.(@lang == 'es').petale2.source
    			txt3    = _xml.fleur.(@lang == 'es').petale3.source
    			txt4    = _xml.fleur.(@lang == 'es').petale4.source
    		break;
    		case 'de':
    			txt1    = _xml.fleur.(@lang == 'de').petale1.source
    			txt2    = _xml.fleur.(@lang == 'de').petale2.source
    			txt3    = _xml.fleur.(@lang == 'de').petale3.source
    			txt4    = _xml.fleur.(@lang == 'de').petale4.source
    		break;
    	}
    	txt10.text    = txt1;
    	txt20.text    = txt2;
    	txt30.text    = txt3;
    	txt40.text    = txt4;
    }
    Et voici le code de la page 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE Data[
    		 <!ELEMENT Data (default, languages)>
    		 		 <!ELEMENT default (text+)>
    		 		 		<!ELEMENT text (row+)>
    						 	<!ELEMENT row (#PCDATA)>
     
    		 		 <!ELEMENT languages (language+)>
    						<!ELEMENT language (text+)>
    						<!ATTLIST language alias CDATA #REQUIRED >
    		 		 			<!ELEMENT text (row+)>
    						 		<!ELEMENT row (#PCDATA)>
    ]>
    <data>
    	<fleur lang ='fr'>
    		<petale1><source>Energie</source></petale1>
    		<petale2><source>Recyclage</source></petale2>
    		<petale3><source>Respect de l'environnement</source></petale3>
    		<petale4><source>Non aux composants toxiques</source></petale4>
    	</fleur>
    	<fleur lang ='en'>
    		<petale1><source>Energy</source></petale1>
    		<petale2><source>Recycling</source></petale2>
    		<petale3><source>Environmentally friendly</source></petale3>
    		<petale4><source>No toxic components</source></petale4>
    	</fleur>
    	<fleur lang ='de'>
    		<petale1><source>Energy</source></petale1>
    		<petale2><source>Recycling</source></petale2>
    		<petale3><source>Umweltfreundlich</source></petale3>
    		<petale4><source>Keine giftigen Komponenten</source></petale4>
    	</fleur>
    	<fleur lang ='es'>
    		<petale1><source>Energía</source></petale1>
    		<petale2><source>Reciclaje</source></petale2>
    		<petale3><source>El medio ambiente</source></petale3>
    		<petale4><source>Ninguno de los componentes tóxicos</source></petale4>
    	</fleur>
    </data>
    Je voudrais savoir comment déclarer ma variable langue sans "Capabilities.language;".

    Merci de toutes l'aide que vous pourrez m'apporter, s'il vous plait si le message n'étais pas assez clair n'hésitez pas à me poser des questions.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 10
    Par défaut
    Salut, pour cela je vois 3 options, malheureusement aucune n'est aussi simple que Capabilities.language

    1. Mettre la langue dans l'url, ou la soumettre via POST, et la récupérer dans flash.
    ex: http://monsite.com/index.php?language=en

    2. Ajouter la langue dans un cookie avec php et lire ce cookie dans flash

    3. Utiliser le paramètre FlashVars dans le code html brut ou l'ajouter avec php dans la déclaration de l'animation.

    HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <object>
    <param name="movie" value="monAnimation.swf">
    <embed src="monAnimation.swf" FlashVars="language=de">
    </embed>
    </object>
    Dans flash
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
    _lang = paramObj['language'];

    Je peux te poster un exemple pour les deux premiers si ça t'intéresse.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 50
    Par défaut Merci
    Oui je veux bien que tu m'envoie un exemple car vraiment je ne m'en sort pas trop.

    D'avance Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 50
    Par défaut re
    Voici donc le code que j'ai mis dans mon flash

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    var _loader:URLLoader;
    var _req:URLRequest;
    var _chemin:String;
    var _xml:XML;
     
    initialisation();
    function initialisation ():void
    {
    	_loader = new URLLoader();
    	_chemin = String ( 'xml/fleur.xml');
    	_req = new URLRequest(_chemin);
    	_loader.addEventListener(Event.COMPLETE, recupXML);
    	_loader.addEventListener(IOErrorEvent.IO_ERROR, erreurXML);
    	_loader.load( _req );
    }
    function erreurXML (ie:IOErrorEvent):void
    {
    	trace (ie);
    }
    function recupXML(e:Event):void
    {
    	_xml = new XML ( e.target.data);
    	var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
        _lang = paramObj['language'];
     
    	var txt1:XMLList;
    	var txt2:XMLList;
    	var txt3:XMLList;
    	var txt4:XMLList;
     
    	switch (_lang)
    	{
    		case 'fr':
    			txt1    = _xml.fleur.(@lang == 'fr').petale1.source
    			txt2    = _xml.fleur.(@lang == 'fr').petale2.source
    			txt3    = _xml.fleur.(@lang == 'fr').petale3.source
    			txt4    = _xml.fleur.(@lang == 'fr').petale4.source
    		break;
    		case 'en':
    			txt1    = _xml.fleur.(@lang == 'en').petale1.source
    			txt2    = _xml.fleur.(@lang == 'en').petale2.source
    			txt3    = _xml.fleur.(@lang == 'en').petale3.source
    			txt4    = _xml.fleur.(@lang == 'en').petale4.source
    		break;
    		case 'es':
    			txt1    = _xml.fleur.(@lang == 'es').petale1.source
    			txt2    = _xml.fleur.(@lang == 'es').petale2.source
    			txt3    = _xml.fleur.(@lang == 'es').petale3.source
    			txt4    = _xml.fleur.(@lang == 'es').petale4.source
    		break;
    		case 'de':
    			txt1    = _xml.fleur.(@lang == 'de').petale1.source
    			txt2    = _xml.fleur.(@lang == 'de').petale2.source
    			txt3    = _xml.fleur.(@lang == 'de').petale3.source
    			txt4    = _xml.fleur.(@lang == 'de').petale4.source
    		break;
    	}
    	txt10.text    = txt1;
    	txt20.text    = txt2;
    	txt30.text    = txt3;
    	txt40.text    = txt4;
    }
    Mais dans dans mon panneaux sortie il me mets ca

    AVERTISSEMENT : les actions associées à un bouton ou les occurrences MovieClip ne sont pas prises en charge par ActionScript 3.0. Aucun script associé aux occurrences d'objets ne sera pris en compte.
    TypeError: Error #2007: Le paramètre text ne doit pas être nul.
    at flash.text::TextField/set text()
    at fleur_fla::MainTimeline/recupXML()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()

    Et voici le code de ma page fleur.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE Data[
    		 <!ELEMENT Data (default, languages)>
    		 		 <!ELEMENT default (text+)>
    		 		 		<!ELEMENT text (row+)>
    						 	<!ELEMENT row (#PCDATA)>
     
    		 		 <!ELEMENT languages (language+)>
    						<!ELEMENT language (text+)>
    						<!ATTLIST language alias CDATA #REQUIRED >
    		 		 			<!ELEMENT text (row+)>
    						 		<!ELEMENT row (#PCDATA)>
    ]>
    <data>
    	<fleur lang ='fr'>
    		<petale1><source>Energie</source></petale1>
    		<petale2><source>Recyclage</source></petale2>
    		<petale3><source>Respect de l'environnement</source></petale3>
    		<petale4><source>Non aux composants toxiques</source></petale4>
    	</fleur>
    	<fleur lang ='en'>
    		<petale1><source>Energy</source></petale1>
    		<petale2><source>Recycling</source></petale2>
    		<petale3><source>Environmentally friendly</source></petale3>
    		<petale4><source>No toxic components</source></petale4>
    	</fleur>
    	<fleur lang ='de'>
    		<petale1><source>Energy</source></petale1>
    		<petale2><source>Recycling</source></petale2>
    		<petale3><source>Umweltfreundlich</source></petale3>
    		<petale4><source>Keine giftigen Komponenten</source></petale4>
    	</fleur>
    	<fleur lang ='es'>
    		<petale1><source>Energ�a</source></petale1>
    		<petale2><source>Reciclaje</source></petale2>
    		<petale3><source>El medio ambiente</source></petale3>
    		<petale4><source>Ninguno de los componentes t�xicos</source></petale4>
    	</fleur>
    </data>
    Je comprend pourquoi cela ne marche pas, desolé mais je debute

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 10
    Par défaut
    Il faut tester ton animation dans sa page web en prenant soin de rajouter le paramètre de la langue.

    Si ton lien pointe directement sur l'animation ce sera par exemple:
    http://monsite.com/monAnimation.swf?language=en

    Si tu l'affiches dans une page alors il faut rajouter le paramètre dans le code HTML. Tu peux le faire via PHP par exemple:
    Si ton addresse est http://monsite.com/index.php?language=en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <embed src="monAnimation.swf" FlashVars="language=<?php echo $_GET['language']?>">

    Postes le code de la page ou ton utilisateur choisi la langue, et celui de la page ou ton animation s'affiche si tu n'y arrives.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 50
    Par défaut re
    Bonjour et encore merci de m'aider

    Donc j'ai fais un dossier dans lequel j'ai mis ma page HTML dans laquelle il y a mon animation flash avec la variable indiqué et mon dossier xml contenant mon fichier xml et mon fichier swf.

    Dossier
    .html
    .swf
    dossier xml
    .xml

    Et dans se cas la tout fonctionne.

    Voila la page ou visualiser l'animation.
    http://www.hybride-test4.com/tente-fleur/fleur-es.html
    LA 1ere animation est ok.

    Par contre pour la 2eme animation à droite
    J'ai hébergé le swf et le dossier xml sur un autre site pour tester quand le swf et le dossier xml ne sont pas héberger au même endroit et dans ce cas ça ne marche pas.

    Voila en espérant avoir été clair.

    Merci d'avance

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/06/2005, 15h04
  2. [Language]Accès aux variables
    Par Adaemon dans le forum Langage
    Réponses: 12
    Dernier message: 27/04/2005, 14h17
  3. [Language]Variables variables
    Par Vader_666 dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2005, 22h52
  4. [Language] Accès à une variable
    Par Boumeur dans le forum Langage
    Réponses: 10
    Dernier message: 10/04/2005, 20h54
  5. Utilisation d'une Variable(Vb) dans d'autre language
    Par cach dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 22/02/2005, 12h00

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