【问题标题】:Image scroller that disables left arrow or right arrow based on the position of mc根据 mc 的位置禁用左箭头或右箭头的图像滚动器
【发布时间】:2014-04-01 22:27:37
【问题描述】:

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

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() 函数,您会发现这可以正常工作,但是它会忽略关闭按钮的切换。基本上这只是向左或向右滚动影片剪辑,我希望它不能在任一方向滚动超出某个点。 (或循环)

有什么想法吗?谢谢!

(是的,我可以在时间轴上更轻松地做到这一点,但我认为这很酷)

【问题讨论】:

    标签: actionscript-3 movieclip image-gallery gsap


    【解决方案1】:

    尝试在 productsRight/Left 中使用 if 语句,该语句仅在对象的 x 值处于特定限制时才会运行。

    productsRight:

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

    产品左:

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

    【讨论】:

    • 感谢您的想法,我们会试一试,让您知道进展如何
    • 哎呀,什么都没做
    【解决方案2】:

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

    但是现在我想知道,是否有一种方法可以通过单击一次在多个影片剪辑上执行此操作?

    【讨论】:

    • 其实,有没有可能像演示链接一样,一键移动movieclip,同时,在与滑动动作一致的不同movieclip上补间alpha到可见上面的演示?
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 2013-07-02
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多