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
Actionscript 3 Adobe Scout:gotoAndPlay()函数比看起来要重?_Actionscript 3_Flash_Adobe Scout - Fatal编程技术网

Actionscript 3 Adobe Scout:gotoAndPlay()函数比看起来要重?

Actionscript 3 Adobe Scout:gotoAndPlay()函数比看起来要重?,actionscript-3,flash,adobe-scout,Actionscript 3,Flash,Adobe Scout,在我的新游戏开发的某个时候,我偶然发现了一个问题,这个问题导致我发现了AdobeScout。问题发生在游戏玩了一段时间后,游戏开始越来越严重地滞后,直到整个应用程序崩溃。我用Scout做了一些评测,我发现:大多数(如果不是的话)沉重的内存负载都是由gotoAndPlay()函数引起的(如果我正确理解评测器提供的数据)。对于Flash来说,这个功能看起来甚至感觉都很简单,但事实并非如此?还是因为使用文本标签而不是帧号?我目前正在寻找可能的解决方法,以减少使用此方法的次数。虽然我这样做了,但从了解此


在我的新游戏开发的某个时候,我偶然发现了一个问题,这个问题导致我发现了AdobeScout。问题发生在游戏玩了一段时间后,游戏开始越来越严重地滞后,直到整个应用程序崩溃。我用Scout做了一些评测,我发现:大多数(如果不是的话)沉重的内存负载都是由gotoAndPlay()函数引起的(如果我正确理解评测器提供的数据)。对于Flash来说,这个功能看起来甚至感觉都很简单,但事实并非如此?还是因为使用文本标签而不是帧号?我目前正在寻找可能的解决方法,以减少使用此方法的次数。虽然我这样做了,但从了解此问题的人那里听取想法或可能的选择将非常有帮助。

我不认为gotoAndPlay()是您的主要问题。在我看来,这会引起打嗝。垃圾收集占用了大量的帧时间。你创建/删除了很多对象吗?嗯,我删除了一些被称为“每帧”的GoToAndPlay,它不再出现在Scout中。但是,是的,我确实经常创建和删除对象,几乎所有的对象都附加到它们各自的类中,这些类中也有很多GoToAndPlay。那一定是这样。你必须这样做吗?我很肯定你可以用不同的方式达到同样的效果。也可以考虑使用对象池。IIRC如果你的时间轴有对象,<代码> GotoDePype()/Cyto>必须先构建框架,这需要时间,如果时间线上的任何对象代码不够短,可能会占用很多。比如说,解析JSON、过滤位图、在构造函数中循环处理一百万件事情,如果必须创建一个对象作为其结果,那么很可能最终会导致
gotoAndPlay()
。gotoAndPlay实际上对内存和CPU几乎没有任何影响,但该方法本身就是一个线索。您不仅会留下一个可能没有处理对象和侦听器的现有帧,而且会到达一个创建更多代码和对象的帧。现在,如果你经常这样做,你的内存就会泄漏。