文本动态更改取决于帧编号

时间:2014-07-06 09:16:27

标签: actionscript-3 flash

我有一个包含100多个文本条目的xml文件和一个动态文本字段。我希望文本根据帧编号而改变。这是我的(非工作)代码:

var myXML5: XML = new XML();
var XML_URL5: String = "assets/bulles.xml";
var myXMLURL5: URLRequest = new URLRequest(XML_URL5);
var myLoader5: URLLoader = new URLLoader(myXMLURL5);
myLoader5.addEventListener("complete", xmlLoaded5);
var list5: Number = 0;

function xmlLoaded5(event: Event): void {
myXML5 = XML(myLoader5.data);
}

function fnPeople5(peopleList5: XML): void {
bulles.text = peopleList5.bullestext.bulle.text()[list5];
}


function bulles2(e: Event): void {
var i5: int = france_map.currentFrame();
list5 = i5;
fnPeople5(myXML5);
}

我希望有人可以帮忙:) 病毒Jeryl

1 个答案:

答案 0 :(得分:0)

这应该会给你一个想法。假设你的xml是这样的

<?xml version="1.0" encoding="UTF-8"?> {
{1}}

<myTexts>
        {
{1}}
<bullestext> <bulle> text1a </bulle> </bullestext> <bullestext> <bulle> text2b </bulle> </bullestext> <bullestext> <bulle> text3c </bulle> </bullestext> <bullestext> <bulle> text4d </bulle> </bullestext> <bullestext> <bulle> text5e </bulle> </bullestext>

然后你可以像这样做你的代码..


我没有设置鼠标/键盘事件进行测试,但没有后顾之忧,没有任何问题,所以你仍然可以使用</myTexts>和你自己的完整代码。另外,因为XML从零开始计数,但是帧数是从1开始的,我们知道每个XML条目等于帧数减去一个。

如果var myXML5: XML = new XML(); var XML_URL5: String = "assets/bulles.xml"; var myXMLURL5: URLRequest = new URLRequest(XML_URL5); var myLoader5: URLLoader = new URLLoader(myXMLURL5); myLoader5.addEventListener("complete", xmlLoaded5); var list5: Number = 0; function xmlLoaded5(event: Event): void { trace ("XML loaded complete"); myXML5 = XML(myLoader5.data); //trace (myXML5); ///show xml contents //fnPeople5(myXML5); france_map.gotoAndStop(3); //for test (shows xml entry [3] later on) bulles2(); } //testing without event (click event?) //function bulles2(e: Event): void function bulles2(): void { var i5: int = france_map.currentFrame; //.currentFrame(); list5 = i5 - 1; //frame [1] is equal to xml entry [0] so we minus by 1 trace ("list5 : " + list5); fnPeople5(myXML5); } function fnPeople5(peopleList5: XML): void { //testing traces trace(peopleList5.bullestext[0].bulle); trace(peopleList5.bullestext[4].bulle); //show entry (example: entry 3) bulles.text = peopleList5.bullestext[list5].bulle; } 中的文字没有显示,但function bulles2(e: Event): void中的跟踪正常,则尝试嵌入字体。请检查此链接:What methods are there for creating FLAs with dynamically created text, that outputs swfs with only the font glyphs included that are required?