PDA

Просмотр полной версии : эффект граффити во флаш


proll
18.07.2005, 17:50
теряюсь в догадках возможно ли такое

нужно:
создать граф редактор, где инструмент рисования балон с краской, отсюда гардиентные заливки, разводы и тд

я думаю это очень проблематично такое во флаш сделать, :confused:
плиз откликнитесь кто такое в инете видел или знает как сделать или от чего оттолкнуться

Король
18.07.2005, 18:02
все зависит от того, какие конкретные требования к графике. в каких-то случаях легче сделать API, в каких-то - маски, в каких-то - attachMovie. но все это будет выглядеть в любом случае слабее shockwave

proll
18.07.2005, 18:05
согласен этот редактор
вроде игрушки на сайте, должен сохранять результаты рисования на сервер, наверно в специфическом формате или xml.

Ion
18.07.2005, 18:10
поставленая задача вполне реализуема и особых кандыбаний возникнуть не должно

proll
18.07.2005, 18:17
спасибо конечно что порадовали
но мне б посмотреть как это выглядит хотя бы
чтоб аэрографом рисовать можно было

дайте если можно линк на пример какой нибудь
буду очень благодарен

Ion
18.07.2005, 18:32
вот, смотри. кстати, хочется отметить, что этот пример мне кажется довольно посредственным и в области рисования можно сделать намного лучше

proll
18.07.2005, 18:40
спасиба большое

Ion
18.07.2005, 19:03
да незашт, эт даже не я делал

proll
18.07.2005, 22:01
я вижу что не ты
но спсиба всёравно буду с глюканами этого кода бороться, края сглаживать,
а то бедасто рисует он как то,
во всяком случае попробую

TERRORist
18.07.2005, 22:24
ион ты нехороший человек 8(
во-первых, сделай лучше если можешь, или не выкладывай и не ругай.
во-вторых это я! сделал!
и нечего там сглаживать. поставь бест качество.

proll
19.07.2005, 03:10
ну тода TERRORistу
местный респект и спасиба
начал свой писать с сохранением результата в жпг на серваке

TERRORist
19.07.2005, 12:04
всегда пожалста!
такую вещицу я уже где-то видел, и оставил свой автограф B)
только зачем в Jpeg? у тебя хостинг резиновый? пусть и грузит, и рисует одна флеша.

proll
19.07.2005, 12:43
хостинг не резиновый но и не 500 Мб
Т.е если без Жпг предлагаешь сделать какой то специфический формат чтото вроде тхт с координатами графики,
Зачем это, я понимаю меньше занимает но
здесь надо просто - юзер нарисовал картинку, картинка засэйвилась, потом админ посмотрел Jpg и выбрал победителя, самый крутой рисунок

KUZEN
19.07.2005, 13:27
Так в твоём случае можно сделать во флеше просматривалку, что бы админ мог посмотреть всё и без jpeg

TERRORist
19.07.2005, 16:12
"здесь надо _просто_ - юзер нарисовал картинку, картинка _засэйвилась_",
Если для тебя это просто, то флаг тебе в руки! Как же ты интересно сэйвить-то в жпг собрался?) Шобы просто?
Я щас часа три угробил чтобы вектор сохранять (вроде работает, но трабла: в localhost сохраняет, но не грузит в себя, открываешь D:/www/flash.swf - показывает! Шайтан! В чем проблема???)

Кстати какой адресок будет у твоей работы?

Ion
19.07.2005, 17:38
ион ты нехороший человек 8(
во-первых, сделай лучше если можешь, или не выкладывай и не ругай.
во-вторых это я! сделал!
и нечего там сглаживать. поставь бест качество. Не, кривые у тебя там рваные получаются, если быстро водить, я пытался писать свою сделал только карандаш, но в основу положил другой алгоритм и все стало красивее, ща по сусекам поскребу, найду и выложу

Ion
19.07.2005, 17:48
во, нашел!

KUZEN
19.07.2005, 17:56
интересно как ты будешь имитировать графити линиями

Ion
19.07.2005, 18:11
Ну, можно чё-нить вроде curveTo попробовать, хотя причем тут графити, я рисовалку не под это затачивал

KUZEN
19.07.2005, 18:14
А вопрос читал ?
curveTo(); кроме линии нарисовать ничего несможет ))) тут без мувиков необойтись ...

Ion
19.07.2005, 18:19
я хотел сделать и слои и все прочее, просто времени ща нет, эт я на досуге минут за 15 написал

TERRORist
19.07.2005, 22:22
Не, кривые у тебя там рваные получаются, если быстро водить, я пытался писать свою сделал только карандаш, но в основу положил другой алгоритм и все стало красивее, ща по сусекам поскребу, найду и выложу
Ион, ты бы хоть хэлп посмотрел бы в ней прежде чем хаять! Флеша заточена как под быстрые, так и под медленные компы. По умолчанию стоит низкая частота выборки (3 пикселя). Поставь 1 - и будет точно так же как и в твоем примере. Но недолго!)

proll
20.07.2005, 01:23
про выюорку это конечно всё правильно
но думаю, нормально сделано по критерию,
качество рисования<->производительность

кста мне не нужно растровой точности
полудетская рисовалка для школьников, только чтоб нормально было, удобно пографитить на стене дома

Ion
20.07.2005, 13:08
Ион, ты бы хоть хэлп посмотрел бы в ней прежде чем хаять! Флеша заточена как под быстрые, так и под медленные компы. По умолчанию стоит низкая частота выборки (3 пикселя). Поставь 1 - и будет точно так же как и в твоем примере. Но недолго!) комп у меня мощный (P4 2.4GHZ) дело не в этом даже когда ставишь частоту 1 при рисовании кистью получаются разрывы, если быстро водить

TERRORist
20.07.2005, 14:46
а что, в твоем примере не получаются чтоли?(

если уж так хочется чтобы не было разрывов, нада аппроксимизирующую функцию, чтоб по 2-3 узла за кадр добавляла.

TERRORist
20.07.2005, 14:51
или может у тебя прозрачность стяла на 20%?

Ion
20.07.2005, 15:00
нет, прозрачность на 100 стояла. у меня разрывов нет. скачай-посмотри, 400 байт в архиве. и я без аппроксимизирующей функции обошелся

TERRORist
20.07.2005, 18:18
Ion ты угомонишься? Вот ето что на картинке - явно пропуски агроменные между координатами. А у меня Пень 1800 Мгц! И не нада твой примитив мешать с моей великолепной работой.

И ваабсче приципы разные - там lineTo, а у меня DuplicateMovieClip

KUZEN
20.07.2005, 18:23
с мувиками много не нарисуешь, на проц большая нагрузка

Ion
20.07.2005, 19:46
Ion ты угомонишься? Вот ето что на картинке - явно пропуски агроменные между координатами. И не нада твой примитив мешать с моей великолепной работой.
Не спорю, что пропуски, только у меня они соединяются, а у тебя нет!!!!!!!!!!!! Я ещё раз говорю: то, что я выложил - это бета версия, написанная за 15 минут!!!!!!!!!!!! Я считаю, что без необходимости не нужно запихивать на лист кучу клипов, а рисовать в одном, раз уж флеш предоставляет нам такую возможность. И нефик называть великоепной работу, в которой даже савинг не предусмотрен! Хотя в общем, я считаю её хорошей и заслуживающей похвалы

TERRORist
20.07.2005, 23:57
Вот вы, KUZEN и Ion, и облажались!
Сделал я флеху которая в один мувик рисует. Тормозит почти СРАЗУ! Что и неудивительно, так как в отличие от моей дергает монструозный мувик _каждый_ кадр. А моя ложила клип на место и забывала о нем..

Таким образом моя флеша является единтсвенно правильной :D

TERRORist
20.07.2005, 23:59
аттач забыл !(

Ion
21.07.2005, 13:47
всё равно у тебя линии рваные!

Король
21.07.2005, 13:48
чуваки, ничего вы флешем не сделаете нормального в плане редактора, пока нет setPixel

TERRORist
21.07.2005, 14:04
всё равно у тебя линии рваные!
Это не у меня линии рваные, это у тебя комп медленный. С тобой предложенным способом ваабще рваньё!) Вот купишь сервант на пару десятков гигагерц, все будет зае**сь.!)

Хочешь нерваные - пиши аппроксимизирующую функцию. Тормозить будет еще больше, но зато без пропусков.

Вывод чуваку-который-создал-тему: Напиши чего нить вроде "Через минуту приедут менты, а краска уже заканчивается! Рисуй чего успеешь!" Введи ограничение на кол-во мувиков и время, чтобы комп не сильно заторможался. Ну и конечно прынцип рысования как в моем мега-редакторе.

Ion
21.07.2005, 15:08
Это не у меня линии рваные, это у тебя комп медленный. С тобой предложенным способом ваабще рваньё!) Вот купишь сервант на пару десятков гигагерц, все будет зае**сь.!)

Хочешь нерваные - пиши аппроксимизирующую функцию. Тормозить будет еще больше, но зато без пропусков.

Вывод чуваку-который-создал-тему: Напиши чего нить вроде "Через минуту приедут менты, а краска уже заканчивается! Рисуй чего успеешь!" Введи ограничение на кол-во мувиков и время, чтобы комп не сильно заторможался. Ну и конечно прынцип рысования как в моем мега-редакторе. У тебя он каждый фрейм (которых в за секунду всего 25 проходит) при нажатой кнопке мыши рисует в месте курсора круг, а у меня он каждую миллисекунду (1000 раз в секунду!!!!!!!) ставит новую точку на ломанной линии и соединяет эту точку с предидущей

TERRORist
21.07.2005, 15:23
блин сколько раз говорить надо не путай хрен с редькой!!!!!) принципы разные!!!!

если ты думаешь что он у тебя 1000 раз в секунду точки ставит посмотри на скриншот! специально для таких как ты сделал! координаты мыши изменяются один раз(!!!!) за кадр, так что ты зря каждую миллисекунду поствил! ты опять облажался!)

Ion
21.07.2005, 16:57
блин сколько раз говорить надо не путай хрен с редькой!!!!!) принципы разные!!!!

если ты думаешь что он у тебя 1000 раз в секунду точки ставит посмотри на скриншот! специально для таких как ты сделал! координаты мыши изменяются один раз(!!!!) за кадр, так что ты зря каждую миллисекунду поствил! ты опять облажался!) тогда почему, когда я поставил 1 фпс ничего не изменилось?

TERRORist
21.07.2005, 17:20
а это означает что твоя флеха начинает тотально тормозить после первых нескольких кадров!)

Король
21.07.2005, 17:45
прислушайтесь ко мне)

Ion
21.07.2005, 17:46
а это означает что твоя флеха начинает тотально тормозить после первых нескольких кадров!) а твоя не тормозит?

TERRORist
21.07.2005, 21:02
если сравнивать граффити, твою и мою, то моя-то меньше тормозит!

Ion
21.07.2005, 21:39
у наших флешек одинаковый принцип рисования! с чего им по-разному тормозить? одинаково при прочих равных условиях!

TERRORist
21.07.2005, 21:47
у наших флешек одинаковый принцип рисования! с чего им по-разному тормозить? одинаково при прочих равных условиях!

Чувак, ты похоже совсем запутался. Моя копирует готовые мувики и ложит каждый на новый слой. Тобой предложенная рисует курвами программно круг в один слой и программно его заливает, отчаго тормозит больше.

Ion
21.07.2005, 22:08
Тобой предложенная рисует курвами программно круг в один слой и программно его заливает, отчаго тормозит больше. Ты чё, совсем ох!"л? Вот код моей:

// Action script...

// [onClipEvent of sprite 1 in frame 1]
onClipEvent (mouseDown) {
Mouse.hide();
tim = setInterval(_root.pen, 1);
updateAfterEvent();
}

onClipEvent (mouseUp) {
Mouse.show();
clearInterval(tim);
}

onClipEvent (enterFrame) {
_root.moveTo(_root._xmouse, _root._ymouse);
}

// [Action in Frame 1]
function pen() {
_root.lineTo(_root._xmouse, _root._ymouse);
updateAfterEvent();
} // End of the function
var x;
var y;
_root.lineStyle(1, 0, 100);

Вот твой код:

// Action script...

// [Action in Frame 1]
colors = [11141375, 11141375];
alphas = [100, 0];
ratios = [0, 255];
draw = false;
onMouseDown = function () {
draw = true;
};
onMouseUp = function () {
draw = false;
};
onEnterframe = function () {
if (draw) {
matrix = {matrixType: "box", x: _root._xmouse - 10, y: _root._ymouse - 20, w: 20, h: 20, r: 0};
lineStyle(0, 255, 0);
beginGradientFill("radial", colors, alphas, ratios, matrix);
moveTo(_root._xmouse, _root._ymouse);
curveTo(_root._xmouse + 10, _root._ymouse, _root._xmouse + 10, _root._ymouse - 10);
curveTo(_root._xmouse + 10, _root._ymouse - 20, _root._xmouse, _root._ymouse - 20);
curveTo(_root._xmouse - 10, _root._ymouse - 20, _root._xmouse - 10, _root._ymouse - 10);
curveTo(_root._xmouse - 10, _root._ymouse, _root._xmouse, _root._ymouse);
endFill();
} // end if
};


И где ты в моей нашел заливку, а в твоей копирование мувиков?!

E-mail
21.07.2005, 22:54
Война миров какая то :) .Может под шумок и на мой вопрос ответите,который я уже кстати задавал тов.TERRORist'у?Как нарисовать монолитную безконтурную заливку путём добавления кругов,тоже нарисованых програмно.
Если рисовать круги с прозрачными контурами,то потом комп начинает тормозить при скролинге и масштабировании,НО ведь если просто нарисовать такую заливку без контуров никаких тормоз не наблюдается.
Спасибо заранее!
Пэ Эсс:от этого зависит судьба червяков....

nuran
21.07.2005, 23:30
погодите пару месяцев, выйдет флаш 8 и там можно будет сделать хоть фотошоп =)

Ion
21.07.2005, 23:33
откуда ты знаешь?

Ion
21.07.2005, 23:36
да, ещё по поводу флеш 8: чёт бета-версия флеш плеера 8 уже есть, а в чем вся эта красота разрабатываться будет?

Nirth
21.07.2005, 23:42
хм....сделал простенький пример с рандомайзером на сет пиксель...в принципе чуть подредактировать добавить настроек и все путем, будет графити =)

TERRORist
22.07.2005, 00:06
Ты чё, совсем ох!"л? Вот код моей:

// Action script...

// [onClipEvent of sprite 1 in frame 1]
onClipEvent (mouseDown) {
Mouse.hide();
tim = setInterval(_root.pen, 1);
updateAfterEvent();
}

onClipEvent (mouseUp) {
Mouse.show();
clearInterval(tim);
}

onClipEvent (enterFrame) {
_root.moveTo(_root._xmouse, _root._ymouse);
}

// [Action in Frame 1]
function pen() {
_root.lineTo(_root._xmouse, _root._ymouse);
updateAfterEvent();
} // End of the function
var x;
var y;
_root.lineStyle(1, 0, 100);

Вот твой код:

// Action script...

// [Action in Frame 1]
colors = [11141375, 11141375];
alphas = [100, 0];
ratios = [0, 255];
draw = false;
onMouseDown = function () {
draw = true;
};
onMouseUp = function () {
draw = false;
};
onEnterframe = function () {
if (draw) {
matrix = {matrixType: "box", x: _root._xmouse - 10, y: _root._ymouse - 20, w: 20, h: 20, r: 0};
lineStyle(0, 255, 0);
beginGradientFill("radial", colors, alphas, ratios, matrix);
moveTo(_root._xmouse, _root._ymouse);
curveTo(_root._xmouse + 10, _root._ymouse, _root._xmouse + 10, _root._ymouse - 10);
curveTo(_root._xmouse + 10, _root._ymouse - 20, _root._xmouse, _root._ymouse - 20);
curveTo(_root._xmouse - 10, _root._ymouse - 20, _root._xmouse - 10, _root._ymouse - 10);
curveTo(_root._xmouse - 10, _root._ymouse, _root._xmouse, _root._ymouse);
endFill();
} // end if
};


И где ты в моей нашел заливку, а в твоей копирование мувиков?!
Блин Ion твоя тупость начинает меня напрягать. К тому же ты, чувак, начинаешь хамить.. Под "твоим способом" я конечно имел в виду программное рисование кругов в одном слое(помнится кто-то его еще с пеной в одном местехвалил), под своим - копирование мувика, и забыли об етом!(

E-mail, ПРИВЕТ!
Карашо когда есть маленькая тайна!) Есть над чем подумать!

Пардон, мне тебя тогда все же не удалось переубедить. Уж поверь, не получится.

Лучше сделай, как сделал я:
есть массивы x и y. По ним сторится линия. При взрыве координаты, лежащие в епицентре, передвигаются по направленю от центра епицентра. Образуется идеальная полукруглая ямка. Проверено и работает на ура, не тормозит ваабсче.

Nirth
22.07.2005, 00:20
если вы не умеете нормально говорить, лучше вообще не говорите. еще одно высказывание типа oх5л или, твоя тупость, будет караться предупреждением и тема будет закрыта.

Nirth
22.07.2005, 00:26
зы http://www.protozoo.com/?p=176
это не графити, но очень похоже на спрей если доработать будет похожим на графити =)

Nirth
22.07.2005, 05:06
поигрался, с спреем аля паинт/фотошоп(атач)
осталось решить маленькую дилему, я пшикал дизом на зеркало на протяжении 5 минут и получаться примерно как во флэшке, но если посмотреть на графити они сделаны плавнее, и как сделать из кучи точек, рисунок понятия не имею, но пуливилизатор то и в спрее, и болончике с краской один и тот же, значит у мастера должно получиться и так нарисовать нечто красивое.

Ion
22.07.2005, 12:16
Блин Ion твоя тупость начинает меня напрягать. К тому же ты, чувак, начинаешь хамить.. Под "твоим способом" я конечно имел в виду программное рисование кругов в одном слое(помнится кто-то его еще с пеной в одном местехвалил), под своим - копирование мувика, и забыли об етом!( когда это у меня было программное рисование кругов в 1-м слое?!

Ion
22.07.2005, 12:22
если вы не умеете нормально говорить, лучше вообще не говорите. еще одно высказывание типа oх5л или, твоя тупость, будет караться предупреждением и тема будет закрыта. а по-моему, слова с частичной заменой букв вполне цензурны

Nirth
22.07.2005, 12:39
я сказал что будет если подобное повториться, мнение Ion'а я учел и принял к сведению, как нибудь обдумаю

TERRORist
22.07.2005, 12:55
ион ты етот способ предложил и сказал что он меньше тормозить будет. и уже забыли об етом!

E-mail
22.07.2005, 13:56
а-а-а-а-а!понял наконец!круто!и всамом деле!супер!спасибо огромное!! :) :) :)

Nirth
22.07.2005, 15:34
вариант два

KUZEN
22.07.2005, 18:09
смотреть только тем у кого восьмёрка ужо )))