Отмена последнего действия

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Ответить
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Отмена последнего действия

Сообщение Евгений »

У меня есть код: (который создаёт шейп, и при нажитии рисует им)

Код: Выделить всё

 var container:Sprite = new Sprite(); addChild (container); container.graphics.moveTo (mouseX, mouseY); stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp); function enterFrameHandler (e:Event):void {container.graphics.beginFill(0xff00ff);container.graphics.drawCircle(mouseX-5, mouseY-5, 10);container.graphics.endFill();} function MouseDown(e:MouseEvent):void {addEventListener(Event.ENTER_FRAME, enterFrameHandler);}function MouseUp(e:MouseEvent):void {removeEventListener(Event.ENTER_FRAME, enterFrameHandler);}
Как сделать отмену последнего действия? Этой функции:

Код: Выделить всё

function enterFrameHandler (e:Event):void {container.graphics.beginFill(0xff00ff);container.graphics.drawCircle(mouseX-5, mouseY-5, 10);container.graphics.endFill();}
sersche
FL Team
FL Team
Сообщения: 598
Зарегистрирован: 11 май 2010, 13:45

Re: Отмена последнего действия

Сообщение sersche »

надо запоминать просто что было до этого..
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Отмена последнего действия

Сообщение Евгений »

sersche, я то-то пробовал сделать...вот, что получилось:

Код: Выделить всё

var container:Sprite = new Sprite();var arr:Array = new Array();addChild (container); container.graphics.moveTo (mouseX, mouseY); stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);btn.addEventListener(MouseEvent.MOUSE_UP, deleteLast);//btn - ваша кнопкаfunction deleteLast(e:MouseEvent):void {this.removeChild(arr.pop());}function enterFrameHandler (e:Event):void {container.graphics.beginFill(0xff00ff);container.graphics.drawCircle(mouseX-5, mouseY-5, 10);container.graphics.endFill();this.arr.push(container);} function MouseDown(e:MouseEvent):void {addEventListener(Event.ENTER_FRAME, enterFrameHandler);}function MouseUp(e:MouseEvent):void {removeEventListener(Event.ENTER_FRAME, enterFrameHandler);}
Но почему-то не работает?! Не подскажите в чем проблема?
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Отмена последнего действия

Сообщение Евгений »

Помогите кто-нибудь...
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Отмена последнего действия

Сообщение bodnar »

Это целый кусок куда или выжимки только?
Евгений писал(а):Но почему-то не работает?!
не работать может кучей способов, у Вас какой? Не компилируется, не запускается, ничего не происходит, происходит не то что нужно и т.д.
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Отмена последнего действия

Сообщение Евгений »

bodnar писал(а):Это целый кусок куда или выжимки только?
Евгений писал(а):Но почему-то не работает?!
не работать может кучей способов, у Вас какой? Не компилируется, не запускается, ничего не происходит, происходит не то что нужно и т.д.
Это целый код...не работает (ничего не происходит)
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Отмена последнего действия

Сообщение bodnar »

И записан он в кадре?

При нажатии на кнопку должно работать removeChild, т.е. удалить потомка, но чего мы собрались удалять, если не делали никаких addChild, а просто рисовали в том же спрайте?

исправь функцию, вроде как должно заработать

Код: Выделить всё

 function MouseDown(e:MouseEvent):void {container = new Sprite();addChild(container);addEventListener(Event.ENTER_FRAME, enterFrameHandler);} 
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: Отмена последнего действия

Сообщение Евгений »

bodnar да код в кадре...функцию исправил, но всё равно не работает...(
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Отмена последнего действия

Сообщение bodnar »

на, дальше сам

Код: Выделить всё

var container:Sprite = new Sprite();var arr:Array = new Array();addChild(container); stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);  function enterFrameHandler (e:Event):void {    container = new Sprite();    container.graphics.beginFill(0xFFCC00);    container.graphics.drawCircle(mouseX, mouseY, 10);    addChild(container);    arr.push(container);} function MouseDown(e:MouseEvent):void  {    if (e.target == btn){ // btn - экземпляр кнопки        this.removeChild(arr.pop());    } else {        addEventListener(Event.ENTER_FRAME, enterFrameHandler);    }} function MouseUp(e:MouseEvent):void  {    removeEventListener(Event.ENTER_FRAME, enterFrameHandler);} 
Ответить