【问题标题】:Restart flash on click单击时重新启动闪存
【发布时间】:2012-02-05 10:27:09
【问题描述】:

我正在尝试使用重启按钮重启我的闪存。我使用 gotoAndPlay(0),但没有任何反应。我确定正在调用 click 事件处理程序,因为我使用了跟踪语句进行验证。

rs.addEventListener(MouseEvent.CLICK, restart);

function restart(event:MouseEvent):void {
    gotoAndPlay(0);
}

【问题讨论】:

  • 它是一个什么样的应用程序,代码放在哪里?听起来它可能是从一些电影剪辑中调用的,而不是从舞台上调用的。或者舞台可能已经在第一帧(这是一般情况,除非你在时间轴上做动画或代码)
  • 这是一种法语语言的代词算法。它像一棵树一样工作。我想舞台已经在第一帧了。

标签: actionscript-3 actionscript


【解决方案1】:

第一帧是第 1 帧,而不是第 0 帧。

不知道为什么 adobe 决定不让帧从零开始,但他们做到了:/

【讨论】:

  • 其他评论中提出的问题也非常有效。重启方法放在哪里?您是否在 1 以外的帧上?会在第 1 帧重新启动您的闪光灯吗?
【解决方案2】:

如果您已将对象(如按钮或图形)添加到舞台,但从未实际使用过舞台的时间轴,则舞台将开始并停留在第一帧。所以'gotoAndPlay' 在这种情况下不起作用。无论如何,它只会重新启动动画有用,因为它不会自行重置任何代码。

您需要决定您真正想要重置哪些部分以及可以保留哪些部分。您可能不想从一开始加载的内存中删除资产,只是为了再次下载它们。一些物品可以保留,其他物品应该被移除。

据我所知,除了重新加载整个页面之外,没有简单的方法可以重置 Flash 应用程序。以下是手动“重置”应用程序的一些一般步骤:

  1. 为您的初始化代码创建一个方法:
    对象创建、添加到显示列表、添加事件监听器。
  2. 点击一下:从舞台上移除所有对象,移除它们的所有事件监听器。
  3. 再次调用初始化方法。

理想情况下,您将 init 方法中的引用设置为新变量,以便旧的可以被垃圾回收。根据代码结构,您可能必须手动将一些设置为空。确保不要保留对不再需要的对象的任何引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 2021-07-21
    相关资源
    最近更新 更多