Здравствуйте! Сделал я код для проверки столкновений бонуса и героя. вот что получилось:
тут появляется бонус:

Код AS3:
package ru.RainbowAdventure
{
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.Event;
public class Universe extends Sprite
{
public static var bon:Boolean = false;
public static var grid:MovieClip = new MovieClip();
public static var bonus:MovieClip = new MovieClip();
public static var wall:MovieClip;
public static const MAP_WIDTH_MAX:int = 30;
public static const MAP_HEIGHT_MAX:int = 20;
public static const MAP_CELL_SIZE:int = 24;
public static const STATE_CELL_FREE:int = 1;
public static const STATE_CELL_BUSY:int = 2;
private var levelLength:Number = 20;
private var levelVeigth:Number = 30;
public function Universe()
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
addBonus();
trace("Univerze initialized...");
}
private function addBonus()
{
if (bon == false)
{
bonus = new Bonus_mc ;
bonus.y != grid.y;
bonus.x != grid.x;
bonus.x = Math.ceil(Math.random() * 18) * 20 + 10;
bonus.y = Math.ceil(Math.random() * 18) * 20 + 10;
bonus.gotoAndStop(1);
bon = true;
addChild(bonus);
trace("Bon =",bon);
}
trace("Bonus initialized...");
}
}
}
вот тут код для проверки столкновений и удаления бонуса:

Код AS3:
package ru.RainbowAdventure.Characters
{
import flash.display.*;
import flash.events.*;
import flash.ui.*;
import flash.utils.*;
import flash.text.*;
import ru.RainbowAdventure.Universe;
public class Hero extends ru.RainbowAdventure.Universe
{
public static var grid:MovieClip;
public static var ball:MovieClip;
public static var bonuses:MovieClip;
public static var bon:Boolean;
public var container_hero:MovieClip;
public var p:int;
public function Hero()
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event):void
{
grid = Universe.grid;
bonus = Universe.bonus;
removeEventListener(Event.ADDED_TO_STAGE, init);
addHero();
stage.addEventListener(Event.ENTER_FRAME, stolknovenie);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyControl);
trace("Hero initialized...");
}
if (bonus.hitTestPoint(ball.x,ball.y,true))
{
bon = false;
removeChild(bonus);
}
}
}
}
при пересечении бонуса и героя появляется вот такая ошибка:

Код:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display::DisplayObjectContainer/removeChild()
at ru.RainbowAdventure.Characters::Hero/stolknovenie()
пытался разобраться но не выходит. и еще иногда бонус появляется на grid хотя прописано,что координаты бонуса не равны координатам грида. помогите пожалуйста