![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2006
Сообщений: 29
|
подскажите плз как сделать плавное перемещение на разницу координат клика и центра окна.
было бы здорово если был какой-нибудь пример ) Последний раз редактировалось aciton; 30.08.2007 в 01:16. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
На сцене должен быть мувик с именем "mc"
var mouseListener:Object = new Object();
mouseListener.onMouseDown = function() {
moving(_xmouse, _ymouse);
};
Mouse.addListener(mouseListener);
function moving(x:Number, y:Number) {
mc.onEnterFrame = function() {
if (Math.abs(this._x-x)<1 && Math.abs(this._y-y)<1) {
trace("deleted");
this._x = x;
this._y = y;
delete this.onEnterFrame;
}
this._x += (x-this._x)*.4;
this._y += (y-this._y)*.4;
};
}
Последний раз редактировалось udaaff; 28.08.2007 в 21:08. |
|
|||||
|
Регистрация: May 2006
Сообщений: 29
|
спасибо огромное. этот ваш код я уже видел. но хочется по другому, чтобы мувик двигался не в сторону клика, а чтобы место клика двигалось к центру экрана
|
|
|||||
|
Регистрация: Feb 2006
Адрес: Moscow
Сообщений: 552
|
или так
function slideThis(mc:MovieClip, __x:Number, __y:Number, __speed:Number):Void
{
mc.onEnterFrame = function()
{
var dx:Number = (__x - this._x) / __speed;
var dy:Number = (__y - this._y) / __speed;
if(Math.abs(dx) < .1 && Math.abs(dy) < .1)
{
this._x = __x;
this._y = __y;
delete this.onEnterFrame;
} else {
this._x += dx;
this._y += dy;
}
}
}
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function()
{
slideThis(mc, _xmouse, _ymouse, 3);
}
Mouse.addListener(mouseListener);
PS чтобы дивгалась сцена (или возникала такая иллюзия, перемещайте все объекты по дивжению мыши, либо перемещайте MovieClip, внутри которого находяться необходимые к перемещению клипы.
__________________
Учимся правильно задавать вопросы |
|
|||||
|
Регистрация: May 2006
Сообщений: 29
|
спасибо, насчет того что все объкеты находились в 1 клипе и двигались - понятно, не понятны 2 вещи,
1 как сделать чтобы точка клика двигалась к центру 2 на сайте видно, что есть несколько слоев (клипов), которе при перемещении двигаются с разным расстоянием, и возникает иллюзия перспективы, где мувики, находящиеся на переднем плане двигаются на большее расстояние, чем задние.. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
В общем то, практически тоже самое
my_mc.onRelease = function() {
moving(this,Stage.width/2-this._xmouse, Stage.height/2-this._ymouse);
};
//
function moving(mc:MovieClip, x:Number, y:Number) {
mc.onEnterFrame = function() {
if (Math.abs(this._x-x)<1 && Math.abs(this._y-y)<1) {
trace("deleted");
this._x = x;
this._y = y;
delete this.onEnterFrame;
}
this._x += (x-this._x)*.4;
this._y += (y-this._y)*.4;
};
}
Последний раз редактировалось udaaff; 28.08.2007 в 21:38. |
|
|||||
|
Регистрация: May 2006
Сообщений: 29
|
спасибо вам огромное товарищи!!!
а про вопрос 2 не подскажите для кучи ))) ? |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Параметр dl отвечает за "замедление" в данной функции
my_mc.onRelease = function() {
moving(this,Stage.width/2-this._xmouse, Stage.height/2-this._ymouse,.2);
};
//
function moving(mc:MovieClip, x:Number, y:Number,dl:Number) {
mc.onEnterFrame = function() {
if (Math.abs(this._x-x)<1 && Math.abs(this._y-y)<1) {
trace("deleted");
this._x = x;
this._y = y;
delete this.onEnterFrame;
}
this._x += (x-this._x)*dl;
this._y += (y-this._y)*dl;
};
}
Последний раз редактировалось udaaff; 28.08.2007 в 21:51. |
|
|||||
|
Регистрация: May 2006
Сообщений: 29
|
это всего лишь замедление, в итоге 2 мувика остаются после перемещения на одинаковой позиции по отношению друг к другу
а на сайте видна перспектива отчетливо. т.е. для заднего мувика расстояние движения меньше чем у мувика на переднем плане в твоем случае координаты 1 и 2 мувика до и после перемещения по отношению друг к другу остаются неизменными Последний раз редактировалось aciton; 28.08.2007 в 22:08. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
aciton, вы ввели новое понятие в физику -- "расстояние движения", осталось единицу измерения только придумать. В "моем случае" присутствует только один мувик.
Что мешает два мувика, переместить на две разные позиции? |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:45. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|