使影片剪辑在下降到一定深度后自动恢复

Posted

技术标签:

【中文标题】使影片剪辑在下降到一定深度后自动恢复【英文标题】:make a movie clip come back up after going down to a certain depth automatically 【发布时间】:2014-04-01 13:45:19 【问题描述】:

您好,请看一下代码。当我按下键盘时,对象会下降,但是我想要的是,当它达到一定深度时它应该会回来..任何帮助将不胜感激,谢谢

//rope coding
var rope = MovieClip(this.root).boat_mc.rope_mc;
var ropeMove:Boolean = false;

    stage.addEventListener(Event.ENTER_FRAME, ropeCode);
    stage.addEventListener(KeyboardEvent.KEY_UP, onSpacebarUp);

    function onSpacebarUp(e:KeyboardEvent):void
    
        if (e.keyCode == Keyboard.SPACE)
            ropeMove = !ropeMove; // toggles ropeMove (i.e. if it's true, sets it to false, and vice versa)
    

    function ropeCode(e:Event):void
    
        //check direction of rope
        if(yDirection) 
        
          rope.y += ropeSpeed;
        
        else
        
          rope.y -= ropeSpeed;
        


        // move the rope
        if( ropeMove )
        
            if( rope.y < 230) 
            
                yDirection = true;
                trace(rope.y);
            
            // stop moving if we've gone too far
            else if (rope.y > 230) 
            
                yDirection = false;
            
        



    

【问题讨论】:

【参考方案1】:

您有 2 次检查,例如

if( rope.y < 230)

if( rope.y > 230)

我认为当 y 为 230 时,您的动画可能会卡住 所以让其中一个来测试平等,比如

if( rope.y < =230)

或添加第三种情况

else if(y==230)

编辑: 添加一个名为 yDirection 的新变量/字段

var yDirection:Boolean=true;

当你想改变方向时翻转这个标志

if( rope.y <=0)
  yDirection=true;
else 
  yDirection=false;

if(yDirection)
  rope.y=+=speed;
else
  rope.y-=speed;

EDIT2 嗨,以前的编辑有一个错误,将rope.y

EDIT3 解决方法很简单,您必须检查ropeMove 值,

if(ropeMove)

    if( rope.y <=0)
      yDirection=true;
    else 
      yDirection=false;

    if(yDirection)
      rope.y=+=speed;
    else
      rope.y-=speed;
 

你的问题很基础,所以你应该学习算法的基础知识,

【讨论】:

不,不幸的是,它一跳到深度就开始返回,然后立即返回并进入循环 现在影片剪辑开始自行下降并继续播放..没有任何反转它甚至不等待空格键被点击大声笑,请检查上面的新代码 看到问题是当我将布尔值声明为真或假时..它会自动开始上升或下降。 感谢它的工作,是的,你是对的,我需要改进我的编码。

以上是关于使影片剪辑在下降到一定深度后自动恢复的主要内容,如果未能解决你的问题,请参考以下文章

无法使功能中的影片剪辑消失

如果仅单击五个影片剪辑(不是更多),如何使影片剪辑可见

ActionScript 3:使影片剪辑播放到最后

AVAudioPlayer 中断后从相同状态恢复音频剪辑

Flash 自动播放影片剪辑

ActionScript:符号影片剪辑不循环