我在AS3中获得了此代码
var products:Array;
var list:Sprite = new Sprite();
function complete(e:Event):void {
addChild(list);
products = JSON.parse(loader5.data) as Array;
for(var i:int = 0, l:int = products.length - 1; l >= 0; i++, l--){
createListItem(i, products[l]);
if(products.length >=10){
next.visible=true;
}
}
showList();
}
它显示我的表数据库中包含的所有产品的列表。
现在我添加了if(products.length >=10){
并且它正在运行。
我想添加
`if(products.length >=10){`
What shoud I put here for showing only 10 products.
next.visible=true;
next.addEventListener(MouseEvent.CLICK, show10Next);
}
function show10Next(event:MouseEvent){
What should I put here for showing the 10 next products ?
}
-------------------------------------------- ----------------------------- 修改
Aaron回答说,这就是我的所作所为:
function complete(e:Event):void {
addChild(list);
products = JSON.parse(loader5.data) as Array;
feedbackText.text = "complete";
showNext() ;
}
function showNext():void {
var currentNumShowing:int = list.numChildren;
var nextNumShowing:int = Math.min(currentNumShowing + 10, products.length);
for(var i:int = currentNumShowing; i < nextNumShowing; i++){
createListItem(i, products[i]);
}
next.visible = nextNumShowing < products.length;
}
现在我该如何添加next.addEventListener(MouseEvent.CLICK,next10);
?
(因为我无法next.addEventListener(MouseEvent.CLICK,showNext);
因为showNext
不是MouseEvent ...)
其次,我的代码显示了从结尾到开头的产品(for(var i:int = 0, l:int = products.length - 1; l >= 0; i++, l--){
。我怎么能保留它?
我试过了:for(var i:int = currentNumShowing, l:int = products.length - 1; i < nextNumShowing;l >= 0; i++, l--){
但是它没有工作(错误1084期待分号之前的右分数并且在右分词之前期待分号)
答案 0 :(得分:0)
如果您要做的只是从products
数组一次显示10,您可以创建一个函数来显示数组的切片,如下所示:
const itemsPerPage:uint = 10;
var currentPageIndex:int = 0;
function displayPage(pageIndex:int):void {
list.removeChildren();
currentPageIndex = pageIndex;
var firstItemIndex:int = pageIndex * itemsPerPage;
var lastItemIndex:int = Math.min(firstItemIndex + itemsPerPage, products.length - 1);
for(var i:int = firstItemIndex; i <= lastItemIndex; i++){
createListItem(i - firstItemIndex, products[i]);
}
next.visible = lastItemIndex < products.length - 1;
}
然后,从您的complete
处理程序,您可以显示第一页,如下所示:
displayPage(0);
您的next
按钮可以有一个显示currentPageIndex + 1
的点击处理程序,如下所示:
next.addEventListener(MouseEvent.CLICK, nextClick);
function nextClick(e:MouseEvent):void {
displayPage(currentPageIndex + 1);
}
同样,您可以displayPage(currentPageIndex - 1)
返回页面。
如果您想要从数组的结尾显示,我建议您只reverse it:products.reverse()
请注意,如果您的数据很大,只需加载JSON可能需要一段时间。在这种情况下,您应该将JSON数据本身分页为一次只加载10