2010-05-07 20 views
0

J'ai un fichier SWF avec du texte incorporé à partir d'un fichier .txt externe. Existe-t-il un moyen d'utiliser un fichier différent comme source de texte via le code d'intégration (swfObject) en fonction de la langue?Comment puis-je changer la langue du texte dynamique dans un fichier SWF en utilisant flashvars?

Voici mon actionscript actuel:

myData = new LoadVars(); 
myData.onLoad = function() { 
text_clips.project_title.text = this.projecttitle1; 
}; 
myData.load("translatetext.txt"); 

var loader:MovieClipLoader = new MovieClipLoader(); 
loader.loadClip(_level0.projectimage1,pic1.image_holder); 

Ceci est le contenu de translatetext.txt:

projecttitle1=This is my translatable text 

Voici le code embed J'utilise:

<div> 
      <object width="960" height="275" id="rvFlashcontent"> 
<param name="movie" value="lang_test_3.swf" /> 
<param name="wmode" value="transparent" /> 
<param name="flashvars" value="projectimage1=flashimages/testimage.jpg" /> 
<!--[if !IE]>--> 
<object type="application/x-shockwave-flash" data="lang_test_3.swf" width="960" height="275"> 
<param name="wmode" value="transparent" /> 
<param name="flashvars" value="projectimage1=flashimages/testimage.jpg" /> 
<!--<![endif]--> 
<h1>Alt Content</h1> 
<!--[if !IE]>--> 
</object> 
<!--<![endif]--> 
</object> 
    </div> 

Ce que je veux faire est d'ajouter un paramètre FlashVars pour nommer le fichier à charger, donc je peux changer la langue:

<param name="flashvars" value="projectimage1=flashimages/image.jpg&projecttext=textfrench.txt" /> 

Il y a quatre langues nécessaires à ce jour, mais cela se développera donc il doit Soyez suffisamment flexible pour permettre aux développeurs d'ajouter des langues sans avoir besoin d'un nouveau fichier SWF à chaque fois. Merci d'avance à tous!

Files for this question available here...

Répondre

0

Je ne sais pas si vous vous demandez comment accéder flashvars ou comment gérer plusieurs langues, mais en supposant qu'il est l'ancien, vous pouvez obtenir à flashvars comme ceci:

protected function init():void 
{ 
    var flashvars:Object = LoaderInfo(root.loaderInfo).parameters; 
    var myDataLoader:URLLoader = new URLLoader(); 
    myDataLoader.addEventListener(Event.COMPLETE, onDataLoadComplete); 
    myDataLoader.load(new URLRequest(flashvars.projecttext)); 
} 

protected function onDataLoadComplete(e:Event):void 
{ 
    var myDataLoader:URLLoader = URLLoader(e.target); 
    var myData:Object = myDataLoader.data; 
    // now you can do whatever you want with the contents of the file (i.e. myData) 
} 

== Modifier ==

Vous devez ajouter un écouteur d'événement qui se déclenchera une fois le chargement terminé. J'ai édité mon pseudo code ci-dessus comme exemple ...

+0

Merci. Je peux obtenir au texte flashvars, mais vraiment je veux nourrir le nom de fichier, et obtenir le texte réel du fichier, pas le code d'intégration. http://skitch.com/birdie/dn21a/flash-dynamic-lang-1 – Cormac

+0

Jetez un oeil à cet article: http://stackoverflow.com/questions/888023/reading-the-text-file-line -by-line-and-push-to-a-array-in-as3 C'est peut-être ce que vous cherchez. Bonne chance! – heavilyinvolved