单击时重新启动闪存
Posted
技术标签:
【中文标题】单击时重新启动闪存【英文标题】: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);
【问题讨论】:
它是一个什么样的应用程序,代码放在哪里?听起来它可能是从一些电影剪辑中调用的,而不是从舞台上调用的。或者舞台可能已经在第一帧(这是一般情况,除非你在时间轴上做动画或代码) 这是一种法语语言的代词算法。它像一棵树一样工作。我想舞台已经在第一帧了。 【参考方案1】:第一帧是第 1 帧,而不是第 0 帧。
不知道为什么 adobe 决定不让帧从零开始,但他们做到了:/
【讨论】:
其他评论中提出的问题也非常有效。重启方法放在哪里?您是否在 1 以外的帧上?会在第 1 帧重新启动您的闪光灯吗?【参考方案2】:如果您已将对象(如按钮或图形)添加到舞台,但从未实际使用过舞台的时间轴,则舞台将开始并停留在第一帧。所以'gotoAndPlay' 在这种情况下不起作用。无论如何,它只会重新启动动画有用,因为它不会自行重置任何代码。
您需要决定您真正想要重置哪些部分以及可以保留哪些部分。您可能不想从一开始加载的内存中删除资产,只是为了再次下载它们。一些物品可以保留,其他物品应该被移除。
据我所知,除了重新加载整个页面之外,没有简单的方法可以重置 Flash 应用程序。以下是手动“重置”应用程序的一些一般步骤:
-
为您的初始化代码创建一个方法:
对象创建、添加到显示列表、添加事件监听器。
点击一下:从舞台上移除所有对象,移除它们的所有事件监听器。
再次调用初始化方法。
理想情况下,您将 init 方法中的引用设置为新变量,以便旧的可以被垃圾回收。根据代码结构,您可能必须手动将一些设置为空。确保不要保留对不再需要的对象的任何引用。
【讨论】:
以上是关于单击时重新启动闪存的主要内容,如果未能解决你的问题,请参考以下文章