简单的点击事件

时间:2013-12-12 08:49:50

标签: actionscript-3 click mouseevent

我不知道为什么我无法弄清楚这个问题真的很基础!! (有时大脑累了我猜)。

我有一个带吉他弦的电影剪辑。 我希望每次点击它都会移动字符串。

我创建了一个包含2个标签的影片剪辑。第一个=非运动,第二个=运动。 我把第二个放在了一个停止点();行动。 (为了停止循环)

我已经把这段代码:

stringOne.addEventListener(MouseEvent.CLICK, accord1, false, 0, true);

public function accord1(e:MouseEvent):void{
            var stringOne;
            trace("DING");
            stringOne.gotoAndStop("first");
        }

它可以工作,但当然,它只在第一次点击时播放字符串移动。

你知道我怎么能播放字符串运动每次点击字符串吗?

非常感谢,对不起这个简单的问题感到抱歉(有点惭愧)..,

修改

啊,啊!它似乎适用于goToAndPlay!

if (stringOne.currentLabel=="premier") {
     stringOne.gotoAndStop("default");
            } else {
     stringOne.gotoAndStop("first");
}

只是一件事,我必须点击两次..

(one click = the string vibrate (label2)) 
(one click again = the string does nothing (going to label 1)) 
(one click again = the string vibrate (label 2)) 

无论如何都会自动跳过第二次点击(告诉字符串返回标签1的那一次),并让代码如下: - 当标签2的动画完成后,自动返回标签1? -

3 个答案:

答案 0 :(得分:1)

据推测,字符串的“运动”标签是某种动画?

在我看来你想要的“吉他弦”movieClip,在“运动”的时间轴动画的最后一帧,是一个说gotoAndStop('non movement')的脚本。点击处理程序应该是gotoAndPlay('移动')。

然后,当字符串'移动'动画完成后,它将自动重置,以便下次单击它时将再次播放。

因此,您的原始代码很好(在编辑之前;但是删除“var stringOne;”,因为这会破坏对stringOne的引用)。您需要添加的唯一内容是运动动画的最后一帧(“第一个”标签?)的时间轴中的脚本,其中包含gotoAndPlay(“default”)(假设默认为“非运动”标签)。您可能需要在“默认”的时间轴框架中使用stop()。

答案 1 :(得分:0)

类似的东西:

stage.addEventListener( MouseEvent.CLICK, onStageClick);

protected function onStageClick(event:MouseEvent):void
{
    switch( event.target )
    {
        case stringOne:
            trace("String one stuff");
            break;
        case stringTwo:
            trace("String 2 stuff");
            break;
    }
}

或者将您的movieClip添加到Sprite中并在Sprite上侦听点击事件而不是在MovieClip上。

答案 2 :(得分:0)

谢谢你的回答。我找到了另一种方法,而不是鼠标点击我已经使用鼠标向下移动到第2帧并且鼠标向上移动到第1帧