Flash as3图像滑块

时间:2014-11-04 11:48:40

标签: actionscript-3 flash actionscript

我试图让图像滑块正常工作。但我没有得到下一个/上一个功能。

我有一个容器mc,用于存放所有图像,还有一个遮罩,用作该容器的遮罩。

以下是我添加图片的方式。

      for(var i:int = 0; i<this.container.numChildren; i++) {
            var mc:DisplayObject = this.container.getChildAt(i);
            if(mc is MovieClip) {
                mc.x = xPos;
                xPos += mc.width + margin;
                mc.y = 0;
            }
        }

因此所有图像现在都位于一个有一定余量的漂亮行中。 面具和容器具有相同的x / y位置。所以,现在让我说我设置了掩码的witdth来显示容器所拥有的5个图像。

如何对下一个/上一个按钮进行编程,以便在点击时只显示或隐藏一个图像? 例如。补间容器位置,看起来是正确的。

这是我的下一个和前功能。与不工作。基本上我希望容器总是显示相同数量的项目。

    private function slideLeft(event:MouseEvent):void {
        if(!TweenMax.isTweening(container)) {
            var tx:Number = Math.min(container.x + itemWidth, _mask.x);
            TweenMax.to(container, 0.3, {x:Math.floor(tx)});
        }
    }

    private function slideRight(event:MouseEvent):void {
        if(!TweenMax.isTweening(container)) {
            var tx:Number = Math.max(container.x - itemWidth, _mask.x-_mask.width);
            TweenMax.to(container, 0.3, {x:Math.floor(tx)});
        }
    }

什么错了?任何人吗?

1 个答案:

答案 0 :(得分:1)

在向右显示项目时,您需要考虑容器的宽度。因此,容器的最小x值应为_mask.x - (container.width - _mask.width)

您还应该考虑边距,否则您会看到评论中描述的偏移量。

private function slideLeft(event:MouseEvent):void {
    if(!TweenMax.isTweening(container)) {
        var tx:Number = Math.min(container.x + (itemWidth + margin), _mask.x);
        TweenMax.to(container, 0.3, {x:Math.floor(tx)});
    }
}    

private function slideRight(event:MouseEvent):void {
    if(!TweenMax.isTweening(container)) {
        var tx:Number = Math.max(container.x - (itemWidth + margin), _mask.x - (container.width - _mask.width);
        TweenMax.to(container, 0.3, {x:Math.floor(tx)});
    }
}
祝你好运!