【发布时间】:2016-01-20 06:35:47
【问题描述】:
我在 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); ?
(因为showNext 不是MouseEvent,所以我做不到next.addEventListener(MouseEvent.CLICK,showNext);...)
其次,我的代码从头到尾显示产品(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 期望在分号之前出现右括号并期望在右括号之前有分号)
【问题讨论】:
-
反对票是怎么回事?这是一个合法的问题(这个问题已经被问到 php 这里:link] 或这里 [link] (stackoverflow.com/questions/1921421/…) 但从来没有问过 AS3。
-
无法解释的否决票令人讨厌且无益。我认为你的问题不是很清楚。您是否要加载所有产品并且一次只显示 10 个?还是您一次从服务器加载 10 个?
-
感谢您的解释。我的意思是“加载所有产品,一次只显示 10 个”(如果可能的话)。
-
我发布了一个答案,但实际上还有另一个问题:您是否想再显示 10 个项目并保留现有项目,例如 10 个、20 个、30 个等,还是要一次只显示 10 个项目(页面),例如项目 1-9,然后是项目 10-19,然后是项目 20-29,等等?
-
谢谢你的答案。第二个(一次只有 10 个项目(页),如项目 1-9,然后项目 10-19 ......等等)
标签: arrays actionscript-3