Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Стереть часть отрисованой области или рисовать по нарисованному (http://www.flasher.ru/forum/showthread.php?t=121307)

Random SunFire 12.02.2009 16:40

Стереть часть отрисованой области или рисовать по нарисованному
 
Рисую прямоугольник. Сверху рисую другой прямоугольник с прозрачной заливкой. Предполагается, что второй перетрет часть первого.
Получается, сквозь второй просвечивает первый, те они прорисовываются как бы в разных слоях.
Как рисовать только в "одном" слое? Или стереть часть отрисованого?

Код AS1/AS2:

beginFill(0x0000FF,100)
        moveTo(0,0);
        lineTo(0,h);
        lineTo(w,h);
        lineTo(w,0);
        lineTo(0,0);
        beginFill(0x00FF00,50)
        moveTo(10,10);
        lineTo(10,h-10);
        lineTo(w-10,h-10);
        lineTo(w-10,10);
        lineTo(10,10);
        endFill();


Flash_nooob 12.02.2009 16:52

имхо никак, у тебя так получается потому что глубина разная, но если ты назначишь одну глубину 2 прямоугольник затрет первый полностью а не частично =)
как вариант, возможно имеет смысл поиграться с масками, т.е. вырезать из маски 1 прямоугольника обьект идентичный 2 прямоугольнику...

Random SunFire 12.02.2009 17:05

Так, а как можно назначить глубину? Можно подробнее?
И можно как то еще взаимодействовать с отрисоваными прямоугольниками?

silin 12.02.2009 17:27

если рисовать их в разных мувиках, то все как бы само собой решается

Flash_nooob 12.02.2009 17:38

мда.. не обратил внимания что ты в мувики их не пихаешь... кроме масок чет ничего не приходит в голову))
так silin его проблему это не решит.. прозрачность то так и так останется

aksios 12.02.2009 17:42

Код AS1/AS2:

beginFill(0x0000FF,100)
moveTo(0,0);
lineTo(0,h);
lineTo(w,h);
lineTo(w,0);
lineTo(0,0);
moveTo(10,10);
lineTo(10,h-10);
lineTo(w-10,h-10);
lineTo(w-10,10);
lineTo(10,10);
endFill();
beginFill(0x00FF00,50)
moveTo(10,10);
lineTo(10,h-10);
lineTo(w-10,h-10);
lineTo(w-10,10);
lineTo(10,10);
endFill();

:)

Random SunFire 12.02.2009 19:41

Обойти то проблему не вопрос. Можно действительно через мувики и маски. А можно сразу чертить так, что бы под вторым прямоугольником была пустая область...
Но хотелось бы разобраться.
Я когда влез в рисование, ожидал, что алгоритм рисования в коде будет таким же как и "ручками". Т.Е. последующая область заливки стирает предыдущую (на которую наложилась).
Кстати вопрос, если я нарисовал в мувике к примеру прямоугольник руками, могу ли я его как то "стереть" кодом?
Ну как например можно удалить вложенный "руками" клип перебросив его с отрицательной глубины...

qazwsx 13.02.2009 07:46

Ты рисуеш линии каторые в итоге непонятно чем являются. Если бы ты рисовал в битмап то все было бы так как ты хочеш. Покрайнемере можно было бы сделать так...


Часовой пояс GMT +4, время: 14:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.