Dima998
10.10.2011, 21:33
начал писать рисовалку(без использования 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);
}
}
}
http://waskes.ucoz.ru/pnt.swf - вот приложение
вот та самая часть кода:
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);
}
}
}
http://waskes.ucoz.ru/pnt.swf - вот приложение