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 Flex3:滚动跳得太快,无法';我不明白为什么_Flash_Apache Flex_Scroll_Tilelist - Fatal编程技术网

Flash Flex3:滚动跳得太快,无法';我不明白为什么

Flash Flex3:滚动跳得太快,无法';我不明白为什么,flash,apache-flex,scroll,tilelist,Flash,Apache Flex,Scroll,Tilelist,我在Flex3中使用TileList来显示产品列表,每行3个。问题是,第三行不适合面板,当我向下滚动时,它会跳3行,因此第三行半可见不可见,是否有调整滚动速度的方法?我搜索了其他相关的问题,找到了一个有效的答案,但我不认为是同一个问题 问题是: 无论如何,这是我的平铺列表的代码: <mx:Panel id="homePage" width="75%" title="{resourceManager.getString('general','menubar_mostsold')}">

我在Flex3中使用TileList来显示产品列表,每行3个。问题是,第三行不适合面板,当我向下滚动时,它会跳3行,因此第三行半可见不可见,是否有调整滚动速度的方法?我搜索了其他相关的问题,找到了一个有效的答案,但我不认为是同一个问题

问题是:

无论如何,这是我的平铺列表的代码:

<mx:Panel id="homePage" width="75%" title="{resourceManager.getString('general','menubar_mostsold')}">
<mx:TileList id="list" dataProvider="{arrPro}"    itemRenderer="compIdea.view.Thumb" width="100%" height="100%"itemClick="product_selected(event)"/> 
</mx:Panel>

我尝试过调整面板的“verticalLineScrollSize”属性,因为TileList不是容器,也没有该属性。我真的必须扩展类列表并重写mouseWheelHandler方法吗


谢谢。我遇到了这个问题,那个链接也帮不了我

试试这个

list.verticalScrollPosition+=(event.delta*-20);//you can experiment`                
event.stopPropagation();`

感谢@GiaGandi的帮助,我已经解决了滚动问题,首先向列表中添加一个eventListener,如下所示

list.addEventListener(MouseEvent.MOUSE_WHEEL, scrollHandler, true);
使用MouseEvent创建一个函数,@GiaGandi说的是正确的,除了乘以-20,这只会使滚动速度加快20倍,我所做的是使用MouseEvent的Delta在我向上或向下滚动时变快,然后将列表的垂直滚动位置加上或减去1。列表的verticalScrollPosition是实际行的插入部分,因此向其添加1使其向下移动一行

然后我遇到了一个不同的问题,当列表达到它的乞讨或结束时,它不会停止滚动,并且发生了一个错误,所以只要控制verticalscrollposition是否高于0,如果上升或高于列表中的行数,在正常情况下,每个对象一行就是数据提供程序的长度,但是因为我的TileList每行有3个对象,所以我将它除以3,然后减去2,这样当它停止滚动时,两行就留在了底部

public function scrollHandler(event:MouseEvent):void{
             if(event.delta < 0){
                 if(list.verticalScrollPosition < (arrPro.length / 3 - 2)){
                     list.verticalScrollPosition += 1;
                }
             }else{
                 if(list.verticalScrollPosition > 0){
                     list.verticalScrollPosition -= 1;
                 }
             }
            event.stopPropagation();
        }
公共函数scrollHandler(事件:MouseEvent):void{
if(event.delta<0){
如果(列表垂直滚动位置<(arrPro.length/3-2)){
list.verticalScrollPosition+=1;
}
}否则{
如果(list.verticalScrollPosition>0){
list.verticalScrollPosition-=1;
}
}
event.stopPropagation();
}
希望这能对以后的人有所帮助,我没有找到其他的解决办法。特别感谢@GiaGandi的帮助


G

我以前是否在列表中添加滚动事件?是的,您应该这样做。您可以在脚本部分
panel.addEventListener(MouseEvent.MOUSE_WHEEL,mouseweelHandler,true)中这样做或类似的内容)正常,但在滚动条到达顶部或底部时返回错误。