图像滚动条根据mc的位置禁用左箭头或右箭头

时间:2014-04-01 22:27:37

标签: actionscript-3 movieclip image-gallery tweenlite

我创建了一种漂亮的图像滚动条,它根据相对补间向右或向左滚动动画片段。然而,我想添加一个if语句或其他东西,以便当movieclip到达某个位置时,左方向箭头被禁用或右方向箭头被禁用。这是我到目前为止的代码:

import flash.display.MovieClip;
import flash.events.MouseEvent;
import com.greensock.*;
import com.greensock.easing.*;

function init():void{
    TweenLite.to(products_mc, 1, {x:696, alpha:1});
}

init();
checkPositionR();


function productsLeft(events:MouseEvent):void
{
    TweenLite.to(products_mc, .75, {x:"-255"});
    arrowR_btn.visible = true;
    arrowR_btn.buttonMode = true;
    checkPositionL();

}

function productsRight(events:MouseEvent):void
{
    TweenLite.to(products_mc, .75, {x:"255"});
    arrowL_btn.visible = true;
    arrowL_btn.buttonMode = true;
    checkPositionR();

}

function checkPositionR():void
{
if (products_mc.x = 696) {
    arrowR_btn.visible = false;
    arrowR_btn.buttonMode = false;
}

}

function checkPositionL():void
{
if (products_mc.x = -1086) {
    arrowL_btn.visible = false;
    arrowL_btn.buttonMode = false;
}

}
arrowL_btn.buttonMode = true;
arrowL_btn.addEventListener(MouseEvent.CLICK, productsLeft);

arrowR_btn.buttonMode = true;
arrowR_btn.addEventListener(MouseEvent.CLICK, productsRight);

arrowL_btn.doubleClickEnabled = true;
arrowR_btn.doubleClickEnabled = true; 

arrowL_btn.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler, false); 
arrowR_btn.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler, false); 

function doubleClickHandler(evt:MouseEvent):void 
 {
  evt.stopPropagation();
 }

如果从productsRight()和productsLeft()函数中删除checkPositionR()和checkPositionL()函数,您将看到它正常工作,但是它忽略了关闭该按钮的切换。基本上这只是向左或向右滚动一个影片剪辑,我希望它无法向任何一个方向的某个点滚动。 (或循环)

有什么想法吗?谢谢!

(是的,我可以在时间轴上做到这一点很容易,但我觉得这很酷就像脚本一样)

2 个答案:

答案 0 :(得分:1)

尝试在productsRight / Left中使用if语句,只有当对象的x值在某个限制内时才会运行。

productsRight:

if(products_mc.x < 696){
    //your Code
}

productsLeft:

if(products_mc.x > -1086){
    //your Code
}

答案 1 :(得分:0)

好的,我找到了完美的解决方案: http://www.flashuser.net/build-an-image-slideshow-in-flash

但是现在我想知道,如果有一种方法可以一次点击多个动画片段吗?