Fex4中使用Group滑动翻页

使用Group配合Animate实现分页,并且实现翻页的动画:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               minWidth="955" minHeight="600">
    <fx:Script>
        <![CDATA[
        import spark.core.NavigationUnit;

        /**
         * 上一页
         */
        private function prePageHandler():void
        {
            smp.valueBy = hGroup.getHorizontalScrollPositionDelta(NavigationUnit.PAGE_LEFT);
            anmiate.play();
        }

        /**
         * 下一页
         */
        private function nextPageHandler():void
        {
            smp.valueBy = hGroup.getHorizontalScrollPositionDelta(NavigationUnit.PAGE_RIGHT);
            anmiate.play();
        }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <s:Animate id="anmiate" target="{hGroup}" duration="800">
            <s:motionPaths>
                <s:SimpleMotionPath id="smp" property="horizontalScrollPosition"/>
            </s:motionPaths>
        </s:Animate>
    </fx:Declarations>
    <s:Panel title="Flex4 Group新特性">
        <s:HGroup id="hGroup" gap="10" height="100" width="320" clipAndEnableScrolling="true">
            <s:Button width="100" height="100" label="1" fontSize="30"/>
            <s:Button width="100" height="100" label="2" fontSize="30"/>
            <s:Button width="100" height="100" label="3" fontSize="30"/>
            <s:Button width="100" height="100" label="4" fontSize="30"/>
            <s:Button width="100" height="100" label="5" fontSize="30"/>
            <s:Button width="100" height="100" label="6" fontSize="30"/>
            <s:Button width="100" height="100" label="7" fontSize="30"/>
        </s:HGroup>
        <s:controlBarContent>
            <s:HGroup width="100%" horizontalAlign="center">
                <s:Button label="上一页" click="prePageHandler()"/>
                <s:Button label="下一页" click="nextPageHandler()"/>
            </s:HGroup>
        </s:controlBarContent>
    </s:Panel>
</s:Application>

使用motionPaths属于Animate可以同时设置目标的多个属于以实现更加复杂的动画,在这里我们只要改变Group的horizontalScrollPosition即可,

因为在Group容器在不能把子集全部显示出来的时候,horizontalScrollPosition和verticalScrollPosition会自动计算出来,这个两个属性是给Scroller用的。

最灵活最巧妙的地方就是这两属性不光可以做为滚动条使用,可以通过Animate改变其值,实现滑动的效果。

NavigationUnit是一个枚举类,他定义了PAGE_UP、PAGE_DOWN、PAGE_LEFT、PAGE_RIGHT等等,这里我们用了HGroup,是横向的,所以只用PAGE_LEFT,PAGE_RIGHT就可以了,

还有一点非常重要,那就是Group的两个方法:getHorizontalScrollPositionDelta()getVerticalScrollPositionDelta(),使用这个两个人方法和NavigationUnit枚举类的参数,可以计算出左移或者右移当前页时,

所需要调整的horizontalScrollPosition值。以此类推,可以使用VGroup实现上下的翻页,TileGroup可以实现上下左右的翻动,而且修改起来非常简单。

就是这样,计算出滚动距离传给SimpleMotionPath 然后播放动画,一切就是这么简单,而且效率极高。

时间: 2024-10-03 21:53:32

Fex4中使用Group滑动翻页的相关文章

Android中实现滑动翻页—使用ViewFlipper(dp和px之间进行转换)

Android中实现滑动翻页—使用ViewFlipper(dp和px之间进行转换) Android中dp和px之间进行转换 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip).一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致.但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法.这个时候,如果需要设置dp的话,就要将dp转换成px了. 以下是一个应用类,方便进行px和dp之间的转换.

【jQueryMobile】使用jQueryMobile实现滑动翻页的效果

滑动手势在移动设备是很流行的,在移动设备中滑动翻页中很常见 虽然这个功能可以在jQueryMobile中实现,但是个人与之前写的<[jQuery]论手机浏览器中拖拽动作的艰难性>(点击打开链接)中的观点一直,由于这是在手机浏览器中浏览,而不是安卓的一个独立APP,所以不要经常除点击以外的移动设备手势,以免跟手机浏览器与手机系统本身的手势发生冲突. 那么,使用jQueryMobile实现滑动翻页的效果到底怎么做呢? 一.基本目标 在手机浏览器中的jQueryMobile框架页中现实滑动手势翻页的

android ViewPager左右滑动翻页,并可以删除page

首先新建一个Activity,继承FragmentActivity. 初始化一个Fragment的List集合,用于像FragmentStatePagerAdapter填充数据,而ViewPager由FragmentStatePagerAdapter的实例进行初始化.和ListView一样,Fragment的List集合的数据变了,就通知FragmentStatePagerAdapter进行界面刷新. ArrayList<Fragment> fragments =new ArrayList&l

多个ImageView组成界面实现上下滑动翻页

============问题描述============ 上面这个就是我的手机界面,我想实现用手上下滑动翻页,翻页过后再来更新这10张照片的内容(图片从服务器GET下来已经实现),现在我就是想晓得这个滑动翻页该用什么组件来实现哦,小弟菜鸟一枚,希望大家多给提点哈 ============解决方案1============ 用fragment吧,改一下fragment里面的数据就行了 ============解决方案2============ 搜一下图片播放器吧

微信里经常看到的滑动翻页效果,slide

上个星期我们的产品姐姐让我帮她写个微信里经常看到的滑动翻页效果,今天抽空写了3个小demo(只写了webkit需要chrome模拟手机看 开启touch事件), 故此写个随笔. 1.demo1,整个大容器tranlateY(性能应该是最好的,但是如果增删一页的话对css影响很大,如果用sass或less除外) html: <!DOCTYPE html> <html> <head> <title></title> <meta name=&qu

桌面浏览器实现滑动翻页效果(Swiper)

还是那个号称很炫的B/S展示软件,在液晶屏上展示需要有滑动翻页的效果(在同一页面滑动切换内容,不是切换页面),最后确定使用功能很强大的Swiper类库. 具体优点可参考:http://www.chinaz.com/free/2013/0626/307273.shtml 我自己的感觉是:功能强大.示例丰富.文档详细. 官方网站:http://www.chinaz.com/free/2013/0626/307273.shtml GitHub地址:https://github.com/nolimits

FlipViewPager 对item实现左右对折滑动翻页效果《IT蓝豹》

FlipViewPager 对item实现左右对折滑动翻页效果 <FlipViewPager 对每一条item实现左右对折滑动翻页效果>,解决左右滑动和上下滑动的事件分发处理机制.内部实现如下:用ListView试下,对listview设置adapter,这个adapter继承BaseFlipAdapter<Friend>,然后对每一个item进行view处理,部分代码如下:class FriendsAdapter extends BaseFlipAdapter<Friend

实现手机滑动翻页效果

var nStartX,nEndX,nDetalX; function touchToNextPage(){ document.addEventListener('touchstart', function (e) { //获得手指开始碰触屏幕时的x坐标 nStartX = e.touches[0].pageX; },false); document.addEventListener('touchmove', function (e) { //获得手指滑动过程中的x坐标 nEndX =Numbe

SSH框架中使用jquery-ingrid实现翻页+筛选

最近项目中有一个地方需要将数据进行列表展示,并提供筛选功能,虽说不是很复杂的功能,但是在使用jquery-ingird插件实现时,还是费了一番周折的,在此进行记录下实现过程,并作为自己在博客园的第一篇博客. 首先说一下ingrid插件,ingrid插件是一个很轻量级的插件,可以帮你快速美观的实现表格的翻页.拉伸等功能,关于ingrid,感觉网上并没有太多的资料,只找到一个比较权威的Demo:http://reconstrukt.com/ingrid/src/example1.html,幸好插件不