(仅限ActionScript 2)
我的网站是一个SWF,它通过PHP加载来自MySQL DB的用户请求数据。 掌握整个沟通过程我没有问题。
在主页上,以及已经在页面右侧部分显示的新闻,我希望在左侧部分显示所提供基本服务的一些提醒,以及注册用户访问网站时必须采取的强制措施
DB返回:带|的数组分隔符和数组项的总数。
在Flash中,我使用以下函数来获取数组:
remindersFct = function () {
var myReminders = new LoadVars();
myReminders.identity = "reminders";
myReminders.onLoad = function(ok) {
if (ok) {
_root.reminderFld.html = true;
var myArray:Array = new Array(myReminders.mydata.split("|"));
myArray.length = myReminders.totalItems;
}
else {
stop();
}
};
myReminders.sendAndLoad("misc.php",myReminders,'POST');
};
remindersFct();//start the process
我想知道不同的事情......:
1 - 如何将这个数组“爆炸”到不同的项目中(所有这些都是文本字符串) 2 - 然后,我如何告诉SWF在相应的htmlText字段中一个接一个地显示它们 3 - 如何根据其中包含的文本长度调整每个项目的持续时间
非常感谢您的帮助!
答案 0 :(得分:0)
嗯,你已经列出的那条线 var myArray:Array = new Array(myReminders.mydata.split(“|”)); 会将字符串分解为数组。至于显示器,我建议你使用for..in语句,如
for(x in myArray){
myDynamicTextField.htmlText += (myArray[x] + "<br>");
}
请注意,因为for..in经常反向迭代,所以你可能想先做myArray.reverse()。
至于持续时间,这有点难以破解。上面的代码将文本全部放在一起 - 您可能需要设置一个计数器,并为下一个文本插入之前剩余的帧数设置一个计时器,如:
_root.x = 0;
_root.timer = 5; //frames
进行设置,然后进入onEnterFrame:
_root.timer--;
if(_root.timer == 0){
myDynamicTextField.htmlText += (myArray[_root.x] + "<br>");
if(_root.x >= myArray.length-1){
delete this.onEnterFrame; //clean up
} else {
_root.timer = ... //put whatever value should go here depending on the length of myArray[_root.x]
}
_root.x++;
}
希望这应该有效。祝你好运!