我有一个SWF,文本嵌入了外部.txt文件。有没有办法可以通过embedcode(swfObject)将不同的文件用作文本源,具体取决于语言?
这是我目前的动作:
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);
这是translatetext.txt的内容:
projecttitle1=This is my translatable text
这是我正在使用的嵌入代码:
<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>
我想要做的是添加一个Flashvars参数来命名要加载的文件,所以我可以更改语言:
<param name="flashvars" value="projectimage1=flashimages/image.jpg&projecttext=textfrench.txt" />
到目前为止,还需要四种语言,但这种语言将会增长,因此需要足够灵活,让开发人员每次都无需获得新的SWF即可添加语言。在此先感谢所有人!
答案 0 :(得分:0)
我不确定你是否在询问如何访问flashvars或如何处理多种语言,但假设它是前者,你可以像这样获得flashvars:
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)
}
==编辑==
您需要添加一个在加载完成时将触发的事件侦听器。我上面编辑了我的伪代码作为例子......