좋아요 올바르게 삭제하면 실제로 인스턴스를 제거하고 있거나 더 이상 그려지지 않고 있습니다. 나는 자체 클래스 내에서 인스턴스를 삭제하려고한다는 것을 언급해야한다. 즉, 자신을 삭제하는 것이다. 더 이상 화면에 그려지지 않는 광장에서 작동하지만 실제로 사라 졌는지 또는 그려지지 않았는지 확실하지 않습니다. 어쨌든 여기에 클래스가있다 :액션 스크립트 :이 클래스 인스턴스를 올바르게 삭제합니까?
package
{
import flash.display.*;
import flash.events.*;
public class OBJECT_bullet_1 extends Sprite
{
public var X:int = 0; public var Y:int = 0;
public var Y_SPEED:int = 5;
public var DEPTH:int = 9;
public var CONTAINER:Sprite = new Sprite();
public function CREATE(CONTAINER:Sprite,X:int,Y:int):void
{
this.CONTAINER = CONTAINER;
CONTAINER.stage.addEventListener(Event.ENTER_FRAME,STEP);
this.X = X; this.Y = Y;
DRAW();
}
public function STEP(event:Event):void
{
this.graphics.clear();
Y -= Y_SPEED;
if (Y < 20) {Y = 300; CONTAINER.removeChild(this); CONTAINER.stage.removeEventListener(Event.ENTER_FRAME,STEP); CONTAINER.(delete this); CONTAINER = null; return;}
DRAW();
}
public function DRAW():void
{
this.graphics.beginFill(0xCCCC00,1);
this.graphics.drawRect(X - 2,Y - 2,4,4);
this.graphics.endFill();
CONTAINER.addChild(this);
}
}
}
그것은 당신이 afterwords 여러 가지 작업을 수행 것을 알 수 있습니다 Y < 20 있는지 확인합니다 때 STEP 기능에 대해 내가 우려하는 부분입니다. 올바르게 삭제합니까? 그렇다면 삭제할 작업이 필요하지 않습니다.
당신은 필요한 것을 훨씬 뛰어 넘었습니다. 하지만, 당신이 if 문을 형식화하는 방식은 내가 아기를 때려주고 싶어합니다. – Aaron