Flash 何时调用AS3_释放

Flash 何时调用AS3_释放,flash,apache-flex,alchemy,Flash,Apache Flex,Alchemy,我是否应该调用AS3\u Release以获取objdestbytarray和结果变量?最终需要释放所有唯一的AS3\u Val变量。对于AS3_Val返回变量,函数本身不释放值,而是假设其调用者将安排值的最终释放 因此,在您的示例中,发布objDestByteArray,但不要发布result。调用makeThumbnail的人负责释放其返回值。感谢您的回答!你能解释一下结果变量吗?这个对象将返回到actionscript代码中,在这里我们没有释放对象的方法,因为GC会自动处理所有引用。所以我

我是否应该调用
AS3\u Release
以获取
objdestbytarray
结果
变量?

最终需要释放所有唯一的
AS3\u Val
变量。对于
AS3_Val
返回变量,函数本身不释放值,而是假设其调用者将安排值的最终释放


因此,在您的示例中,发布
objDestByteArray
,但不要发布
result
。调用
makeThumbnail
的人负责释放其返回值。

感谢您的回答!你能解释一下
结果
变量吗?这个对象将返回到actionscript代码中,在这里我们没有释放对象的方法,因为GC会自动处理所有引用。所以我只希望GC最终会清理这个物体?@Andrey:是的。如果函数返回一个引用计数为1的
AS3_Val
,则清除该值的全部责任转移给调用方。这包括回调函数,其中Alchemy调用您的函数并承担清除返回值的责任。我应该补充一点,释放
result
然后返回引用计数为0的函数甚至不是一个选项。在您调用
AS3\u Release
后,该值可能会立即消失,无法返回。我在炼金术论坛上问了同样的问题,但得到了一个稍微不同的答案:他们说我根本不需要发布
结果。当我返回这个对象时,在C代码中没有对它的引用。我还在FlashBuilderProfiler中进行了检查,也得到了相同的结果。从C代码返回到actionscript后,
objDestByteArray
仍然有来自C代码的引用,
结果
没有。但无论如何,你的答案是正确的。我应该调用
AS3_Release(objDestByteArray),但不应
AS3_发布(结果)
@Andrey:他说return“释放”引用,这对你来说是简化了一点。我们基本上说的是同一件事。在返回值之前不要完全释放它们。