![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2006
Сообщений: 9
|
Здравствуйте товарищи
У меня такая проблема. Рисую лук при помощи action script. Хочу, чтобы когда пользователь нажимает мышкой на тетеву и тянет ее тетева перерисовывалась в виде кривой с контрольной точкой в месте нажития мыши, начало и конец кривой совпадают с исходными значениями (у концов лука), когда пользователь отпускает мышку, перерисовка заканчивалась. И вроде все получается, но когда я второй раз нажимаю на тетеву (первый раз перирисовка проходит нормально), кривая рисуется не так (контрольная точка находится пикселях в 10 справа от нажатия мыши)вот код... import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; var teteva:Sprite = new Sprite(); var luk:Sprite = new Sprite(); //var strela:Sprite = new Sprite(); var clc:Boolean = false;//true если кнопка нажата на тетеве luk.graphics.lineStyle(1,0); luk.graphics.moveTo(0,0); luk.graphics.curveTo(40,5,0,100); teteva.graphics.lineStyle(1,0); teteva.graphics.moveTo(0,0); teteva.graphics.curveTo(0,100,0,100); /* strela.graphics.lineStyle(1,0); strela.graphics.moveTo(0,50); strela.graphics.lineTo(70,-15); addChild(strela); */ addChild(luk); addChild(teteva); //strela.x=170; //strela.y=230; luk.x = 200; luk.y = 200; teteva.x=200; teteva.y=200; teteva.addEventListener(MouseEvent.MOUSE_DOWN,tyanut); teteva.addEventListener(MouseEvent.MOUSE_UP,otpustit); stage.addEventListener(MouseEvent.MOUSE_UP,otpustit); stage.addEventListener(Event.ENTER_FRAME,redraw); function otpustit (event:MouseEvent) { clc=false; } function redraw(event:Event) { if (clc) { teteva.graphics.clear(); teteva.graphics.lineStyle(1,0); teteva.graphics.moveTo(0,100); teteva.graphics.curveTo(mouseX-200,mouseY-200,0,0); teteva.graphics.endFill(); //teteva.x=200; //teteva.y=200; } } function tyanut(event:MouseEvent): void { clc =true; trace(clc); } посмотрите пожалуйста, там всего несколько строк.... |
|
|||||
|
[+1 24.05.11]
[+1 09.08.11] Регистрация: Mar 2011
Сообщений: 101
|
stage.addEventListener(Event.ENTER_FRAME,redraw); Уберите из основного блока. Слушайте его только когда жмете на кнопку. Вот так например.
function otpustit (event:MouseEvent) { stage.removeEventListener(Event.ENTER_FRAME,redraw); } function redraw(event:Event) { teteva.graphics.clear(); teteva.graphics.lineStyle(1,0); teteva.graphics.moveTo(0,100); teteva.graphics.curveTo(mouseX-200,mouseY-200,0,0); teteva.graphics.endFill(); //teteva.x=200; //teteva.y=200; } function tyanut(event:MouseEvent): void { stage.addEventListener(Event.ENTER_FRAME,redraw); } |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 9
|
К сожалению не помогло, но все равно спасибо. И еще вопрос, как изменить точку регистрации объекта при помощи action script?
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 1,764
|
__________________
а за окном атлантический океан! |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 9
|
спасибо
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:49. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|