相关疑难解决方法(0)

ActionScript - 强制垃圾收集在ADL中不起作用?

在ADL中启动以下代码时,为什么方块继续旋转?

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF0000);
square.graphics.drawRect(-25, -25, 50, 50);
square.x = square.y = 100;
addChild(square);

addEventListener(Event.ENTER_FRAME, rotateSquare, false, 0, true);

function rotateSquare(evt:Event):void
    {
    square.rotation += 2;
    }

System.gc();
Run Code Online (Sandbox Code Playgroud)

更新

以下显示对象具有弱引用的ENTER_FRAME事件侦听器.但是,打电话:

removeChild(testInstance);
testInstance = null;
Run Code Online (Sandbox Code Playgroud)

不会停止ENTER_FRAME事件:

package
{
import flash.display.Sprite;
import flash.events.Event;

public class Test extends Sprite
    {       
    private var square:Sprite;

    public function Test()
        {
        addEventListener(Event.ADDED_TO_STAGE, init);
        }

    private function init(evt:Event):void
        {
        removeEventListener(Event.ADDED_TO_STAGE, init);

        square = new Sprite();
        square.graphics.beginFill(0xFF0000);
        square.graphics.drawRect(-25, -25, 50, 50);
        square.x = square.y = 100;
        addChild(square); …
Run Code Online (Sandbox Code Playgroud)

air garbage-collection actionscript-3 addeventlistener

1
推荐指数
1
解决办法
364
查看次数