Просмотр полной версии : использование рисунков через LineTo как масок
Приветствую
Вопрос такой:
Я нарисовал некий контур используя lineTo и moveTo команды
Как мне объявить этот контур маской для некоторого слоя?
Можно маленький пример?
Линии не могут быть маской, нужна заливка. Программно нельзя назначать маску слою, а только мувиклипу. Делается это так:
имя_мувиклипа.setMask (имя_мувиклипа_маски);
что - линии совсем не могут быть масками!!!
а что же мне сделать - я рисую линии через массив с вершинами
Но вы же задаете им определенную толщину? Вот теперь вам надо рисовать фигуры шириной в эту толщину.
// рисуем, заливаем
this.createEmptyMovieClip("shape", 1);
shape.lineStyle(1, 0x000000, 100);
shape.beginFill(0xFF0000, 100);//красная заливка
shape.moveTo(100, 100);
shape.lineTo(200, 56);
shape.lineTo(200, 25);
shape.lineTo(100, 200);
//еще как-нибудь
shape.lineTo(100, 100);
shape.endFill();
//и, как писал iNils, назаначаем маску (я не между строк смотрел:))
mc.setMask(shape);
//Все, проверил, работает - сам удивлен:)
//Если же нужно именно по контуру (без заполнения не
//получается, проверил), т.е. обводкой без заполнения - вспоминай теорию построения
//фигур в 2-мерной плоскости, рисуй 2 контура, отстоящие на опр. значение,
//заполняй промежкток и т.д. это в полярных координатах легче:), чем в прямоугольных
ну проще тогда рисовать не линию а прямугольник который чуть шире этой линии
вот только скорость просядет
или отрисовку как-нить оптимизировать можно?
Я думал еще про дублирование клипов по координатам контура, но маску потом несколькими клипами назначить проблематично. Надо поэксперементировать.
this.createEmptyMovieClip("square_mc", 1);
square_mc.lineStyle(5, 0x000000, 100);
square_mc.beginFill(0xFF0000, 100);
square_mc.moveTo(100, 100);
square_mc.lineTo(200, 100);
square_mc.lineTo(200, 200);
square_mc.lineTo(100, 200);
square_mc.lineTo(100, 100);
square_mc.moveTo(110, 110);
square_mc.lineTo(210, 110);
square_mc.lineTo(210, 210);
square_mc.lineTo(110, 210);
square_mc.lineTo(110, 110);
square_mc.endFill();
//контуром, нет времени эксперементировать
//пробуй
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.