【问题标题】:Disable button on frame label once I used it?使用后禁用框架标签上的按钮?
【发布时间】:2018-05-12 11:25:14
【问题描述】:

我认为我做得对,因为我有一些来自这个论坛的参考资料。 我的问题是(不仅对我,对一些同事,我也认为它可以帮助其他用户)。我有这个原始框架,想象一些东西作为地图,然后我按下一个按钮,转到另一个框架(例如一个房间)。当我从那个房间回到我的地图时,我想要那个我曾经被禁用的确切按钮,这样我就不能再在那个房间里玩了。

我已经尝试了一些基于这种脚本的:

myBtn.onRelease = function() {
    this.enabled = false;
}

还有这个……

btn.enabled = false;
btn.on(MouseEvent.CLICK, hideObject);

myClip.mouseEnabled = false;
myClip.mouseChildren = false;

还有一些其他的脚本我迷路了!

但我认为它与鼠标事件有关,禁用还是可见?

我必须承认我现在是菜鸟。 我已经尝试了很多东西,但我找不到有效的正确答案!

请告诉我之前是否已经回答过这个问题,因为我在任何地方都找不到。

谢谢!感激不尽!

根据要求,我目前有这个: 帧标签“f1”上的操作

this.f1library_btn.on ("click", function() {
    root.gotoAndStop("f1r4");
});

效果很好!然后,在框架标签“f1r4”上,我有:

this.f1back_btn.on ("click", function() {
    root.gotoAndStop("f1");
});

您与框架标签 f1r4 上的某些内容进行交互。 不错的流量。当我点击这个按钮 /f1back_btn 时,我回到“f1”,我想禁用按钮“f1library_btn”,所以我不能多次进入框架标签“f1r4”。

在这一点上,我觉得你主要是在为我工作(这不是我的意思),但正如我所说,我真的需要一个关于如何让它工作的解释!

谢谢!

【问题讨论】:

  • myBtnbtnmyClip有什么区别?
  • 这些是我根据我的问题搜索过的 as3 的一些复制/粘贴...在这种情况下,它们都来自不同的主题,但我在尝试它们时迷失了方向,但我没有没有所有的代码。我不知道如何解释我的问题,因为我已经找到了一些答案作为进步的基础,但无法让它发挥作用!
  • 您的按钮上是否设置了实例名称?这就是你想要的:buttonInstanceName.addEventListener(MouseEvent.CLICK, hideObject); 然后你需要一个 hideObject 函数来隐藏按钮 buttonInstanceName.enabled = false(如果是 SimpleButton)或 buttonInstanceName.mouseEnable = false(如果是 MovieClip)或 buttonInstanceName.visible = false 以完全隐藏它。跨度>
  • 我会尝试解释我所拥有的。我有这个按钮,它的实例名称是 f1library_btn;当我点击它时,我会看到另一个需要完成的框架标签,然后我回到 f1library_btn 按钮访问所在的位置。但是,我希望它只工作一次,这意味着,我想在使用一次后阻止/禁用它。非常感谢你已经帮助了我!我很高兴!我不知道如何正确地感谢你。我会试试这个!谢谢!
  • 你目前有什么代码? (用于转到另一个框架并再次返回)- 把它放在你的问题中。

标签: flash button jquery-animate easeljs adobe-animate


【解决方案1】:

以下是您可以执行的操作的示例:

如果您的按钮与您移动到的帧位于同一时间轴上,您可以简单地禁用或隐藏它:

this.f1library_btn.on("click", function(e) {
    //the clicked button can be referenced with the event's (e) current target property
    e.currentTarget.visible=false;  //hide the button or e.currentTarget.mouseEnabled=false to disable the button
    root.gotoAndStop("f1r4");
});

【讨论】:

  • 先生,您太棒了!它有效,我可以理解如何以及为什么,这太棒了!太感谢了!我只想问一个问题,你是怎么解决这个问题的?根据经验?
  • 大多数情况下,我决定实际尝试一下,并注意到在 EaselJs(在 Adob​​eAnimateCC 中驱动 HTML5 Canvas 的 javascript 库)中,您的按钮处理程序中的范围覆盖了 this,因此无法访问 this.f1library_btn在点击处理程序中。作为替代方案,您可以不使用e.currentTarget(在显示的代码上方)var f1library_btn = this.f1library_btn;,然后您可以通过执行f1library_btn.visible = false; 在该函数中访问它
  • 我也会尝试这样做,这样我就可以完全获得所有替代方案!但无论如何它都有效!太感谢了。原谅我打扰你了!你解释得真好!
猜你喜欢
  • 2012-10-14
  • 2013-06-26
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 2022-09-25
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多