![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2003
Сообщений: 5
|
есть мувик, при нажатии мышки я делаю:
затем таскаю копию.... когда отпускаю - копия возвращается на начальное место: function obj_MouseUp() {
...........
angle_rad=Math.atan2(((dr._y+dr._height/2) - (dr.parent._y+dr._height/2)),
((dr._x+dr._width /2) - (dr.parent._x+dr._width /2)));
dy=Math.sin(angle_rad);
dx=Math.cos(angle_rad);
........
} // func
_root.onEnterFrame = function () {
if (!return_obj) {
return;
} //if
for(i=1;i<=12;i++) {
dr._x -= dx*2;
dr._y -= dy*2;
var y = dr._y+dr._height/2;
var x = dr._x+dr._width /2;
if (dr.parent.hitTest(dr) ||
dr.parent.hitTest(x+20,y,false) ||
dr.parent.hitTest(x-20,y,false) ||
dr.parent.hitTest(x,y+20,false) ||
dr.parent.hitTest(x,y-20,false)) {
dr.removeMovieClip();
return_obj = false;
break;
} // if
} // for
} // func
ошибка не периодична!!! Помогите... кроме вычисления длины гипотинузы и проверки пройденного пути ничего в голову не приходит.... |
|
|||||
|
Регистрация: Sep 2003
Сообщений: 5
|
тащем мувик, при этом создается дубликат, а родитель остается на месте.... затем отпускаем и дубликат возвращается к родителю. при пересечении с родителем дубликат удаляется... проблема в том, что момент пересечения иногда не отлавливется и дубликат летит в бесконечность.... хотя визуально он пересекается с родителем.....
|
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Полчаса таскал твои кружочки, - все работает нормально, никаких сбоев.
Единственное замечание: ты излишне усложняешь код. К примеру, последнюю часть кода я бы написал так:
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Регистрация: Sep 2003
Сообщений: 5
|
дык в том-то и дело, что ошибка возникает очень редко, особенно когда показываешь заказчику
... кроме этого, случаются проблемы с определением угла до родителя, в этом случае родитель и предок не пересекаются вообще (визуально)... решил все с помощью определения длины пройденного пути до родителя...работает 100%, пока глюков не было.... кому интересно - вот:function obj_MouseUp() {
var angle_rad=Math.atan2(((dr._y+dr._height/2) - (dr.parent._y+dr._height/2)),
((dr._x+dr._width /2) - (dr.parent._x+dr._width /2)));
dy=Math.sin(angle_rad);
dx=Math.cos(angle_rad);
st_x = dr._x;
st_y = dr._y;
var y = (dr._y - dr.parent._y);
var x = (dr._x - dr.parent._x);
st_g = Math.sqrt(y*y + x*x);
return_obj = true;
} // func
_root.onEnterFrame = function () {
if (!return_obj) {
return;
} //if
dr._x -= dx*24;
dr._y -= dy*24;
var y = (dr._y - st_y);
var x = (dr._x - st_x);
var g = Math.sqrt(y*y + x*x);
if (dr.parent.hitTest(dr) ||
g >= st_g) {
dr.parent.onPress = obj_Press;
dr.parent.useHandCursor = true;
dr.parent._alpha = 100;
dr.removeMovieClip();
return_obj = false;
} // if
} // func
|
![]() |
Часовой пояс GMT +4, время: 14:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|