Actionscript 3 gotoAndPlay工作,但停止而不是播放as3
下面的as3位于根级别上实例名为“counter_int”的电影剪辑中,目标movieclip实例名“win_message”也分别位于根级别上 在使用下面的listener/function和if语句方法之前,它工作得很好,当在“counter_int”中输入一个新帧时,“win_message”movicelip播放得很好,该帧包含与3相同的内容,减去listener和if语句 除了仍与目标movieclip通信外,其他所有功能仍正常工作,因为“win_消息”movieclip在第2帧停止,而不是继续播放。没有止步();目标movieclip中除第1帧以外的命令Actionscript 3 gotoAndPlay工作,但停止而不是播放as3,actionscript-3,flash,Actionscript 3,Flash,下面的as3位于根级别上实例名为“counter_int”的电影剪辑中,目标movieclip实例名“win_message”也分别位于根级别上 在使用下面的listener/function和if语句方法之前,它工作得很好,当在“counter_int”中输入一个新帧时,“win_message”movicelip播放得很好,该帧包含与3相同的内容,减去listener和if语句 除了仍与目标movieclip通信外,其他所有功能仍正常工作,因为“win_消息”movieclip在第2帧停止,
addEventListener(Event.ENTER_FRAME, success);
function success(ev : Event) : void
{
if (linked_total.text == (5).toString () )
{
Object(root).win_message.gotoAndPlay(2);
}
}
任何帮助都将不胜感激!如果我不善于解释我的问题,我会道歉
谢谢您的问题是因为您在
事件的侦听器中使用了gotoAndPlay()
。请输入\u FRAME
事件,这样会重复调用它,直到条件为false为止
尽管这样做是一种不好的方式,但您可以改为使用任何您知道将在用户需要时执行的准时操作(按钮单击、文本字段更改等)
如果出于任何其他原因,您仍然需要使用事件。ENTER\u FRAME
事件侦听器,您应该确保您的条件仅为true一次(或者至少调用gotoAndPlay()
一次),然后您可以使用布尔值调用gotoAndPlay()
,例如:
var first_run:Boolean = true;
addEventListener(Event.ENTER_FRAME, success);
function success(ev:Event) : void
{
// when first_run is false, we are sure that even if linked_total.text still equals to "5"
// this condition will always be false
if (int(linked_total.text) == 5 && first_run)
{
first_run = false;
MovieClip(root).win_message.gotoAndPlay(2);
}
}
当条件第一次为true时,您也可以删除事件侦听器,但在这种情况下,我不知道您为什么要使用事件。请输入\u FRAME
事件侦听器
function success(ev:Event) : void
{
if (int(linked_total.text) == 5)
{
removeEventListener(Event.ENTER_FRAME, success);
MovieClip(root).win_message.gotoAndPlay(2);
}
}
。。。通过避免你的行为,有很多方式可以达到你想要的目的
希望能有所帮助。谢谢akmozo。原谅我的笨拙。我很快尝试将这两个as3粘贴到(而不是我当前的as3)中,但没有成功。老实说,我可能需要更多的“牵手”@spumker抱歉,我的代码出错了,它是int(linked_total.text)==5
而不是int(linked_total.text)=5
)再次抱歉。试试看,告诉我你得到了什么。