(由于播放器限制,工作在AS2.0)
在我的 Flash 应用程序中,我从 XML 中提取数据。例如,该数据在 1 种语言中为 6 行,但在另一种语言中可能为 20 行。
但是屏幕上的文本框只能填充 10 行文本,我想为用户提供按箭头转到下一页的选项(如果有下一页)。
我有什么选择来获得这种“页面”效果?
您可以计算出每页可以容纳的字符总数。然后使用 substring 获取每个页面的文本,直到到达 xml 字符串的末尾。将每个页面字符串放入一个数组中,并在用户使用迭代器类型模式单击箭头时更改文本字段中的文本。
根据评论进行编辑:
啊我明白你在说什么。这里有一种更强力的逐字符方法,用于在指定高度或附近创建文本字段数组。
var pageIndex = 0;
var maxHeight = 300;
var copy = "Some super long chunk of text here";
var pages = [];
function parsePages()
{
for(var i = 0; i < copy.length; i++)
{
if(pages.length == 0) createPage(0);
pages[pageIndex].text += copy.charAt(i);
pages[pageIndex]._height = pages[pageIndex].textHeight;
if(pages[pageIndex]._height >= maxHeight)
{
pageIndex++;
createPage(pageIndex);
}
}
}
function createPage(index)
{
this.createTextField("page_"+index,this.getNextHighestDepth(),0,0,300,12);
this["page_"+index].multiline = true;
this["page_"+index].wordWrap = true;
this["page_"+index].font = "Arial";
this["page_"+index].size = 10;
this["page_"+index].text = "";
pages.push(this["page_"+index]);
}
parsePages();