![]() |
Отмена действия
Есть трабл, может кто поможет?
По клику мыши программно рисуется линия, по следующему -- её продолжение, и так далее. Можно сделать так чтобы по нажатию на кнопку последняя линия стиралась? Не вся, а только последняя, созданная последним кликом. |
Несколько способов решения этой задачи:
1)Каждый новый отрезок помещяешь в отдельный клип, потом просто удаляешь клипы. 2)Просто зарисовать последнюю линию цветом фона(если конечно под линией кроме фона ничего нет), предварительно зопомнив кординаты этой линии. |
Создайте N-мувиклипов (по числу нужного количества откатов) и нарисованную линию заносите не сразу ко всем, а методом FIFO (first in, first out) прогоняйте через мувиклипы.
2 BigDan: зачем удалять то, просто клип чистить последний. |
Цитата:
|
BigDan, про закрашивание и сама думала, но фон неоднородный, так что не прокатит.
iNils, а нельзя ли рассказать про эти методы или дать ссылку, где почитать? Не сталкивалась с таким ещё. |
Тогда можно загонять в битмапдату все клипы кроме последних N и удалять сами клипы.
|
Цитата:
Значит вам нужно 3 клипа (в квадратных скобках глубина клипа) mc1 [3]: Клип для 1 шага mc2 [2]: Клип для 2 шага mc3 [1]: Клип для 3 шага mc0 [0]: Клип с суммарным изображением. Все эти клипы находятся внутри еще одного (для простоты манипуляций) Теперь когда вы собираетесь нарисовать первую линию, то она рисуется в клипе mc1. Как только вы нажимаете мышь для рисования новой линии, по кругу меняете глубину клипов для откатов. mc3 [3] mc1 [2] mc2 [1] mc0 [0] Теперь у нас на верху клип mc3, и новая линия рисуется уже в нем. Для следующей линии делаем тоже самое и вверху будет mc2. Так мы добавили три линии, когда собиремся добавить 4-ую, пустого клипа для откатов уже не будет, поэтому (отступление: при заносе линии в клип, мы для этого клипа ставит значение переменной flag = true, что значит клип не пустой, и записываем там координаты 2- точек линии) мы меняем клипы по кругу опять и получаем самое начальное положение. Теперь считываем из верхнего клипа координты линии и рисуем их в mc0, в mc1 вызываем clear () и рисуем новую линию. Ну и так далее. Когда собиремся делать откат, то есть нажать кнопку, мы ищем первый клип сверху где flag != true, меняем значение флага на false и вызываем clear (). |
Спасибо за помощь! Проблема решена ) Каждую линию помещаю в новый мувиклип и потом удаляю его, когда надо.
Всем спасибо! |
iNils, спасибо за объяснение, попробую и этот метод тоже разобрать.
|
| Часовой пояс GMT +4, время: 19:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.