2013-03-21 5 views
0

Как удалить точку? Я искал по всей сети, однако я не могу найти решение ... Мой код в простых терминах:Как удалить точку?

Создание переменных:

var point1:Point=new Point(); 
    var point2:Point=new Point(); 
    var bullet:MovieClip=new bullet; 
    var box:MovieClip=new box; 

Установка положения коробки и точка

box.x=200; 
    box.y=200; 

    point2.x=200; 
    point2.y=200; 

Установка скорости пули:

bullet.speedX=10; 

Аддин г слушатель на сцену:

stage.addEventListener(Event.ENTER_FRAME, inToFrame) 
    function inToFrame (evt:Event) 
    { 
     bullet.x+=bullet.speedX; 
     point1.x=bullet.x; 
     point1.y=bullet.y; 
     if(Point.distance(point1,point2)<10) 
     { 
      if(this.contains(bullet)) 
       { 
        removeChild(bullet); 
        //And here I want one of the two points to be removed 
       } 
      if(this.contains(box)) 
       { 
        removeChild(box); 
       } 
     } 
    } 
+0

Точка класса не могут быть размещены на сцене (http://help.adobe.com/en_EN/FlashPlatform/reference/actionscript/ 3/flash/geom/Point.html, а не DisplayObject). Это просто абстрактная структура. На сцене нет очков! Итак, что вы хотите удалить в реальном? – Smolniy

+0

poin1 = null; Doh – Pier

+0

Спасибо @Smolniy, я просто не хочу, чтобы точка взаимодействовала с другой точкой в ​​следующий раз, когда они находятся в радиусе 10 друг от друга. – user2196152

ответ

4

Они не являются даже на стадии, Point не экранный объект не может быть добавлен к стадии.

Редактировать только что установил point1 назад в исходное положение, например, 0,0, чтобы он не попадал в инструкцию if при следующей проверке. Или лучше просто проверить, если пуля находится на этапе перед проверкой расстояния между двумя точками

if(bullet.parent && Point.distance(point1,point2)<10) 
{ 
    if(this.contains(bullet)) 
    { 
     removeChild(bullet); 
     //And here I want one of the two points to be removed 
    } 
    if(this.contains(box)) 
    { 
     removeChild(box); 
    } 
} 
+0

Я вижу, но это не решает мою проблему. Основная идея заключается в том, что пуля, несущая с собой точку i, стреляла в объект, который также несет в себе точку. И когда две точки находятся в определенном радиусе друг от друга, как объект, так и точка должны быть уничтожены. Я могу уничтожить только объект, который является клипом. – user2196152

+1

он не решает вашу проблему, потому что кода, который вы показали, недостаточно, чтобы определить, что вам нужно сделать. – Daniel

+0

Как @Daniel сказал, что вы не показывали код, который добавляет пулю на сцену, вы не хотите удалять точки вы хотите удалить пули со сцены. Если у вас есть «bullet», просто выполните «stage.removeChild (bullet);» в выражении if –