То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Евгений
FL Team
Сообщения: 776 Зарегистрирован: 10 июн 2010, 11:01
Сообщение
Евгений » 12 июл 2010, 11:09
У меня есть код: (который создаёт шейп, и при нажитии рисует им)
Код: Выделить всё
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
Сообщения: 598 Зарегистрирован: 11 май 2010, 13:45
Сообщение
sersche » 12 июл 2010, 14:41
надо запоминать просто что было до этого..
Евгений
FL Team
Сообщения: 776 Зарегистрирован: 10 июн 2010, 11:01
Сообщение
Евгений » 12 июл 2010, 14:47
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);}
Но почему-то не работает?! Не подскажите в чем проблема?
bodnar
Модератор
Сообщения: 1399 Зарегистрирован: 03 апр 2010, 06:41
Сообщение
bodnar » 12 июл 2010, 17:41
Это целый кусок куда или выжимки только?
Евгений писал(а): Но почему-то не работает?!
не работать может кучей способов, у Вас какой? Не компилируется, не запускается, ничего не происходит, происходит не то что нужно и т.д.
Евгений
FL Team
Сообщения: 776 Зарегистрирован: 10 июн 2010, 11:01
Сообщение
Евгений » 12 июл 2010, 17:58
bodnar писал(а): Это целый кусок куда или выжимки только?
Евгений писал(а): Но почему-то не работает?!
не работать может кучей способов, у Вас какой? Не компилируется, не запускается, ничего не происходит, происходит не то что нужно и т.д.
Это целый код...не работает (ничего не происходит)
bodnar
Модератор
Сообщения: 1399 Зарегистрирован: 03 апр 2010, 06:41
Сообщение
bodnar » 12 июл 2010, 18:14
И записан он в кадре?
При нажатии на кнопку должно работать removeChild, т.е. удалить потомка, но чего мы собрались удалять, если не делали никаких addChild, а просто рисовали в том же спрайте?
исправь функцию, вроде как должно заработать
Код: Выделить всё
function MouseDown(e:MouseEvent):void {container = new Sprite();addChild(container);addEventListener(Event.ENTER_FRAME, enterFrameHandler);}
Евгений
FL Team
Сообщения: 776 Зарегистрирован: 10 июн 2010, 11:01
Сообщение
Евгений » 12 июл 2010, 18:20
bodnar да код в кадре...функцию исправил, но всё равно не работает...(
bodnar
Модератор
Сообщения: 1399 Зарегистрирован: 03 апр 2010, 06:41
Сообщение
bodnar » 12 июл 2010, 18:55
на, дальше сам
Код: Выделить всё
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);}