Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash:使用XML进行分页_Xml_Flash_Pagination_Paging_Actionscript 2 - Fatal编程技术网

Flash:使用XML进行分页

Flash:使用XML进行分页,xml,flash,pagination,paging,actionscript-2,Xml,Flash,Pagination,Paging,Actionscript 2,(由于播放器的限制,在AS2.0中工作) 在我的flash应用程序中,我从XML中提取数据。例如,该数据在1种语言中有6行,但在另一种语言中可能有20行 但是,屏幕上的文本框只能填充10行文本,我想让用户可以选择按箭头进入下一页(如果有下一页) 我有哪些选项可以获得这种“页面”效果?您可以计算出每页可以容纳的字符总数。然后使用子字符串获取每个页面的文本,直到到达xml字符串的末尾。将每个页面字符串放入一个数组中,当用户使用迭代器类型模式单击箭头时,只需更改textfield中的文本即可 根据评论

(由于播放器的限制,在AS2.0中工作)

在我的flash应用程序中,我从XML中提取数据。例如,该数据在1种语言中有6行,但在另一种语言中可能有20行

但是,屏幕上的文本框只能填充10行文本,我想让用户可以选择按箭头进入下一页(如果有下一页)


我有哪些选项可以获得这种“页面”效果?

您可以计算出每页可以容纳的字符总数。然后使用子字符串获取每个页面的文本,直到到达xml字符串的末尾。将每个页面字符串放入一个数组中,当用户使用迭代器类型模式单击箭头时,只需更改textfield中的文本即可

根据评论进行编辑:

啊,我明白你的意思了。这里有一种更为野蛮的方法,一个字符一个字符地创建一个指定高度的文本字段数组

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();
var-pageIndex=0;
var maxHeight=300;
var copy=“此处有一些超长文本块”;
var页面=[];
函数parsePages()
{
对于(变量i=0;i=最大高度)
{
pageIndex++;
创建页面(页面索引);
}
}
}
函数createPage(索引)
{
this.createTextField(“page_u3;”+索引,this.getNextHighestDepth(),0,0300,12);
此[“页面”+索引]。多行=true;
此[“页面”+索引].wordWrap=true;
此[“页面”+索引].font=“Arial”;
这[“页面”+索引]。大小=10;
此[“页面”+索引]。text=“”;
pages.push(此[“页面+索引]);
}
解析页面();

您不能改为使用滚动?对于少量文本,滚动是一个比分页更好的用户选项。很遗憾,滚动不是一个选项+这只是一个例子。最后的xml将是每章大约200行的文本。(一种语言)谢谢你的回答。。。我一直在尝试这样做,但是一个阿拉伯字符可能比一个“普通”字母更宽。然而,如果我只需要用1种语言创建它,我会使用这种方法。编辑:哇,这是一个相当繁重的过程。试过了,成功了。。。非常感谢。