在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)