![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2011
Сообщений: 10
|
всем доброго времени суток.
есть такая задача: по клику на стейдже добавляется на стейдж спрайт с кружочком, по клику на спрайте, спрайт должен удалиться(или просто visible=false). добывляю спрайты я так: 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). В нём проверяете event.target is Sprite и делаете (event.target as Sprite).parent.removeChild(event.target as Sprite). Не нужен массив sprites и итератор i.
|
|
|||||
|
Регистрация: Feb 2011
Сообщений: 10
|
спасибо, работает, спрайты теперь удаляются, но осталась вторая проблема - stageClick все равно срабатывает, и рядом с удалившимся спрайтом рисуется новый
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 21
|
то, что быстро в голову приходит, там где делали обработку события "Щелчок на Спрайте", добавьте строчку остановки дальнейшей обработки события:
Протестировал у себя, работает так, как вы поставили в задаче. |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 10
|
спасибо, работает
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:43. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|