Показать сообщение отдельно
Старый 23.02.2011, 20:38
vineda вне форума Посмотреть профиль Отправить личное сообщение для vineda Найти все сообщения от vineda
  № 1  
Ответить с цитированием
vineda

Регистрация: Feb 2011
Сообщений: 10
По умолчанию удаление спрайта по клику на нем

всем доброго времени суток.
есть такая задача: по клику на стейдже добавляется на стейдж спрайт с кружочком, по клику на спрайте, спрайт должен удалиться(или просто visible=false).
добывляю спрайты я так:
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.events.MouseEvent;
 
	/**
	 * ...
	 * @author me
	 */
	public class Main extends Sprite 
	{
		public var sprites:Array=new Array();
		public var i:int = 0;
		public var X:Number;
		public var Y:Number;
 
		public function stageClick(e: MouseEvent):void
		{
			trace(e);
			X = mouseX;
			Y = mouseY;
			sprites[i] = new Sprite();
			sprites[i].graphics.beginFill(123, 1);
			sprites[i].graphics.drawCircle(mouseX, mouseY, 10);
			sprites[i].graphics.endFill();
			sprites[i].name = "i";
			stage.addChild(sprites[i]);
			i++;
			trace(i);
			trace(sprites);
		}
 
		public function keyDown(k:KeyboardEvent):void
		{
 
		}
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
			stage.addEventListener(MouseEvent.CLICK, stageClick);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
		}
 
	}
 
}
и вот собственно столкнулся с проблемой - как удалять? пробовал для каждого спрайта addEventListener(MouseEvent.CLICK, spriteClick), но так и не додумался, как его можно удалить, да к тому же появилась еще одна проблема - даже если клик был по спрайту, все равно срабатывает stageClick. Может кто посоветовать, как удалять спрайты по клику?