Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Actionscript 3 Flex 3中TileList中的移动效果_Actionscript 3_Apache Flex_Actionscript_Flex3 - Fatal编程技术网

Actionscript 3 Flex 3中TileList中的移动效果

Actionscript 3 Flex 3中TileList中的移动效果,actionscript-3,apache-flex,actionscript,flex3,Actionscript 3,Apache Flex,Actionscript,Flex3,我提供给你的样本代码,我做了迄今为止。我想做的是当我点击向下按钮Tilelist慢慢滚动并更改数据时。虽然通过单击向下按钮更改了数据,但未显示任何效果。我在网上搜索了很多,但找不到更好的方法。如果可能的话,请给出最好的方法 这是我到目前为止所做的示例代码 <?xml version="1.0"?> = 0) { tileList.verticalScrollPosition=滚动位置; } 其他的 { tileList.verticalScrollPosition=0;

我提供给你的样本代码,我做了迄今为止。我想做的是当我点击向下按钮Tilelist慢慢滚动并更改数据时。虽然通过单击向下按钮更改了数据,但未显示任何效果。我在网上搜索了很多,但找不到更好的方法。如果可能的话,请给出最好的方法

这是我到目前为止所做的示例代码

<?xml version="1.0"?>


= 0)
{
tileList.verticalScrollPosition=滚动位置;
}
其他的
{
tileList.verticalScrollPosition=0;
}
}
公用函数B取消单击():无效
{
变量scrollPosition:int=tileList.verticalScrollPosition+1;
如果(滚动位置

提前感谢。

您可以使用spark组件,例如,并将
使用VirtualLayout
设置为true


代码的问题是,在更新数据提供程序时,会创建并显示每个itemrenderer。当
useVirtualLayout
设置为true时,仅创建显示的项目,并在滚动时回收这些项目。然后,您可以收听itemrenderer的
dataChange
事件以启动转换。

将TileList在容器(如Canvas或VBox)中,并强制它为所有项目的全高(如果您有可变的RowHeight,这可能有点复杂)。然后在VBox上处理滚动,而不是TileList


也注意到VBox作为一个ItReNeReDER有很多开销。你可能想考虑把图片放在那里。它有水平对齐和垂直对齐属性。

谢谢你的回答,但是我必须使用TrielistCl组件。这就是为什么我面对这个问题。我很好奇谁在投票?什么是对问题THA的Flex 4回答。t已被标记为Flex 3…进步爱好者毫无疑问;)对不起,我错过了标签。
<mx:Sequence id="dataChangeEffectSequence">
    <mx:Move duration="1500" easingFunction="{Elastic.easeOut}" perElementOffset="20"/>
</mx:Sequence>

<mx:Script>
    <![CDATA[
        import mx.effects.easing.Elastic;
        import mx.controls.Alert;
        import mx.events.ScrollEvent;

        private var arrImage:Array = [
            {source:"Images/1.png",tooltip:"1"},
            {source:"Images/2.png",tooltip:"2"},
            {source:"Images/3.png",tooltip:"3"},
            {source:"Images/4.png",tooltip:"4"},
            {source:"Images/5.png",tooltip:"5"},
            {source:"Images/6.png",tooltip:"6"},
            {source:"Images/7.png",tooltip:"7"},
            {source:"Images/8.png",tooltip:"8"},
            {source:"Images/9.png",tooltip:"9"},
            {source:"Images/10.png",tooltip:"10"}];

        public function onInit():void
        {
            tileList.dataProvider = arrImage;
        }

        public function btnUP_click():void
        {
            var scrollPosition:int = tileList.verticalScrollPosition - 1;

            if(scrollPosition >= 0)
            {
                tileList.verticalScrollPosition = scrollPosition;
            }
            else
            {
                tileList.verticalScrollPosition = 0;
            }
        }

        public function btnDown_click():void
        {
            var scrollPosition:int = tileList.verticalScrollPosition + 1;

            if(scrollPosition <= tileList.maxVerticalScrollPosition)
            {
                tileList.verticalScrollPosition = scrollPosition;
            }               
        }

    ]]>
</mx:Script>

<mx:Button width="100" label="UP" id="btnUP" click="{btnUP_click();}" />

<mx:TileList id="tileList" dataProvider="{arrImage}" columnCount="1" columnWidth="100"
    useRollOver="false" selectable="false" backgroundAlpha="0" borderStyle="none" 
    rowHeight="65" verticalScrollPolicy="off" horizontalScrollPolicy="off"
    itemsChangeEffect="{dataChangeEffectSequence}" >
    <mx:itemRenderer>
        <mx:Component>
            <mx:VBox width="100%" height="100%" horizontalAlign="center" verticalGap="0"
                verticalAlign="middle" horizontalScrollPolicy="off" verticalScrollPolicy="off">
                <mx:Script>
                    <![CDATA[
                        import mx.controls.Alert;
                        override public function set data(value:Object):void
                        {
                            if(value !=null)
                            {
                                super.data = value;
                                if(img !=null)
                                {
                                    img.source = data.source;
                                    img.toolTip = data.tooltip;
                                }
                            }
                        }
                    ]]>
                </mx:Script>
                <mx:Image id="img" showEffect="{outerDocument.dataChangeEffectSequence}" />
            </mx:VBox>
        </mx:Component>
    </mx:itemRenderer>
</mx:TileList>

<mx:Button width="100" label="DOWN" id="btnDown" click="{btnDown_click();}" />

</mx:Application>