我不知道为什么我无法弄清楚这个问题真的很基础!! (有时大脑累了我猜)。
我有一个带吉他弦的电影剪辑。 我希望每次点击它都会移动字符串。
我创建了一个包含2个标签的影片剪辑。第一个=非运动,第二个=运动。 我把第二个放在了一个停止点();行动。 (为了停止循环)
我已经把这段代码:
stringOne.addEventListener(MouseEvent.CLICK, accord1, false, 0, true);
public function accord1(e:MouseEvent):void{
var stringOne;
trace("DING");
stringOne.gotoAndStop("first");
}
它可以工作,但当然,它只在第一次点击时播放字符串移动。
你知道我怎么能播放字符串运动每次点击字符串吗?
非常感谢,对不起这个简单的问题感到抱歉(有点惭愧)..,
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? -
答案 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帧