我不是程序员,所以如果我的问题太过分,请原谅我。
我在我的库中创建了一个名为“技能”的MovieClip。然后,我在我的阶段中添加了三个MovieClip实例,分别称为"skill_01“、"skill_02”和"skill_03“。我选择了这三个实例,并创建了另一个名为“图”的MovieClip来将它们嵌套在其中。稍后,我将在这个名为“图”的MovieClip中添加更多的技能实例,但就目前而言,我需要基本知识来处理三个实例。
主时间线或阶段只有一个框架,“图表”MovieClip实例也是如此。然而,技能实例都有两个框架:在框架1中,我有一个PNG图像显示它们处于锁定/离线状态,而在框架2中,我有另一个PNG将它们显示为未锁定/联机。我需要通过单击和右键单击它们来切换它们,就像下面的示例(参见链接)所示
我正在尝试使它,当你左击技能实例,他们切换到联机/解锁切换到框架2中的PNG图像,当你右击他们,它回到帧1(离线/锁定)。我尝试了几行不同的代码,包括Adobe本身推荐的代码以及其他代码,但我不知道自己做错了什么。当右击时,它将转到第2帧,并拒绝返回到第1帧。
这是我在MovieClip中的代码:
stop();
skill_01.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame);
function fl_ClickToGoToNextFrame(event:MouseEvent):void
{
gotoAndStop(2);
}代码的这一部分不起作用:
skill_01a.addEventListener(MouseEvent.RIGHT_CLICK, fl_ClickToGoToPreviousFrame);
function fl_ClickToGoToPreviousFrame(event:MouseEvent):void
{
prevFrame();
}截图1: gyazo (dot) com/e622baee46c3fibd8c9a8d2df8396fe
截图2: gyazo (dot) com/1b360716a5d243a74e2 com 4127fe9a5b
(很抱歉输入了这样的链接,它不会让我添加超过一个链接,因为我刚刚注册了这个论坛)
关于更多的上下文,我正在尝试创建一个与此类似的技能树:Your
我将感激任何帮助弄清楚这一点!
发布于 2016-11-04 01:17:34
如果您已经将您的电影命名为skill_01,那么skill_01a是什么呢?
还将事件侦听器及其回调函数添加到育婴唇的父函数和回调函数中,以访问事件所有者,请使用
// stop(); not necessary to call stop if you have only 1 frame
with (this.diagram) {
skill_01.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame);
skill_02.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame);
skill_03.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame);
skill_04.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame);
skill_01.gotoAndStop(1);
skill_02.gotoAndStop(1);
skill_03.gotoAndStop(1);
skill_04.gotoAndStop(1);
}
function fl_ClickToGoToNextFrame(event:MouseEvent):void
{
if (MovieClip(event.target.parent).currentFrame == 1)
MovieClip(event.target.parent).gotoAndStop(2);
else
MovieClip(event.target.parent).gotoAndStop(1);
}编辑:当一个事件从点击的“电影”发送出去时,在您的实例中,只有层次结构树中的最后一个“电影”作为event.target传递,可以是skill_01 (如果当前帧为1),也可以是skill_1a (如果“当前帧”是2),您不仅在技能的框架1和2中有一个png图像,而且它们是“event.target”的,并将作为event.target返回。但是,如果只将位图(locked.png & unlocked.png)而不是skill_01和skill_01a放在一起,那么前面的代码可以正常工作。位图不捕获事件,所以它的父是谁接受点击事件和它都有点混乱,我不擅长解释
如果很难理解的话
我们将使用类似的东西,更简单但更大的代码。
with (this.diagram) {
skill_01.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame_s1);
skill_02.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame_s2);
skill_03.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame_s3);
skill_04.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame_s4);
skill_01.gotoAndStop(1);
skill_02.gotoAndStop(1);
skill_03.gotoAndStop(1);
skill_04.gotoAndStop(1);
}
function fl_ClickToGoToNextFrame_s1(event:MouseEvent):void {
toggle_buttons(skill_01);
}
function fl_ClickToGoToNextFrame_s2(event:MouseEvent):void {
toggle_buttons(skill_02);
}
function fl_ClickToGoToNextFrame_s3(event:MouseEvent):void {
toggle_buttons(skill_03);
}
function fl_ClickToGoToNextFrame_s4(event:MouseEvent):void {
toggle_buttons(skill_04);
}
function toggle_buttons(button:MovieClip):void
{
if (button.currentFrame == 1)
button.gotoAndStop(2);
else
button.gotoAndStop(1);
}https://stackoverflow.com/questions/40411968
复制相似问题