Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 gotoAndPlay工作,但停止而不是播放as3_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 gotoAndPlay工作,但停止而不是播放as3

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帧停止,

下面的as3位于根级别上实例名为“counter_int”的电影剪辑中,目标movieclip实例名“win_message”也分别位于根级别上

在使用下面的listener/function和if语句方法之前,它工作得很好,当在“counter_int”中输入一个新帧时,“win_message”movicelip播放得很好,该帧包含与3相同的内容,减去listener和if语句

除了仍与目标movieclip通信外,其他所有功能仍正常工作,因为“win_消息”movieclip在第2帧停止,而不是继续播放。没有止步();目标movieclip中除第1帧以外的命令

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
)再次抱歉。试试看,告诉我你得到了什么。