![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
начал писать рисовалку(без использования graffiti library) и возникли проблемы с созданием инструмента прямоугольник, оно не "растягивает прямоугольник" а как-бы "оставляет следы", посмотрите сами.
вот та самая часть кода: function downed(event:MouseEvent) { //проверяю что в данный момент кнопка мыши зажата if (pole.fld.hitTestPoint(event.stageX,event.stageY,true)) { //таким образом проверяю - находится ли курсор в пределах поля для рисования if (tool==1) { //если выбран инструмент карандаш dp++; //увеличиваю счетчик объектов pole['o' + dp]=new Sprite(); //создаю новый спрайт pole['o' + dp].x=0; //ставлю его координаты по нулям pole['o' + dp].y=0; xx=pole.mouseX; //запоминаю координаты места нажатия мыши yy=pole.mouseY; pole['o' + dp].graphics.lineStyle(tnk.value,clr.selectedColor,(alp.value/100)); //настраиваю стиль рисования pole['o' + dp].graphics.moveTo(pole.mouseX,pole.mouseY); //делаю так чтоб рисование началось с места нажатия мыши pole['o' + dp].graphics.lineTo(pole.mouseX + 0.3,pole.mouseY + 0.3); //таким образом ставлю точку при нажатии pole.addChild(pole['o' + dp]); //ставлю спрайт на сцену work=true; //этой переменной обозначаю что кнопка мыши зажата } } function upped(event:MouseEvent) { //если кнопка мыши была отпущена drw = true; //эта переменная тут нечего не касается work=false; //обозначаю что кнопка мыши отпущена } function moved(event:MouseEvent) { if (work) { //проверяю что кнопка мыши зажата if (tool==1) { //если выбран инструмент карандаш pole['o' + dp].graphics.lineTo(pole.mouseX,pole.mouseY); //рисую } else if(tool==3) { //если выбран инструмент прямоугольник //рисую прямоугольник, в этом блоке проблема pole['o' + dp].graphics.lineTo(pole.mouseX,yy); pole['o' + dp].graphics.lineTo(pole.mouseX,pole.mouseY); pole['o' + dp].graphics.lineTo(xx,pole.mouseY); pole['o' + dp].graphics.lineTo(xx,yy); } } } Последний раз редактировалось Dima998; 10.10.2011 в 21:57. |
|
|||||
|
Banned
Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Где в коде хоть один комментарий?
Как-то нет желания сидеть и ломать голову, пытаясь понять, а что происходит тут или тут, и что должно происходить |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
ок, сейчас исправлю
|
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
готово
Добавлено через 4 минуты хм... где именно? оно же будет вытирать весь мой спрайт... или как-то надо по-другому применить? не подскажите? |
|
|||||
|
У Вас по всему коду нетипизированный доступ к переменным. Этого лучше избежать. Вам нужно иметь два слоя : на первом основная-общая фигура, а на втором текущая, и при каждой перерисовке текущей фигуры, стирать дополнительный слой,а при смене фигуры переносить все на основной.
__________________
http://www.chessmax.ru |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
не понял о каких слоях вы говорите
|
|
|||||
|
Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 121
|
Цитата:
вроде как должно все работать как хотелось но оно почему-то после этого вообще его не рисует =( Добавлено через 9 минут ну почти разобрался, после clear() почему-то обнуляется lineStyle и moveTo, ну нечего исправил, но еще почему-то не дорисовывает одну линию у прямоугольника Добавлено через 11 минут все, окончательно разобрался, работает, всем спасибо за помощь =) |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:32. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| прямоугольник , рисовалка |
|
|