Показать сообщение отдельно
Старый 30.04.2009, 00:38
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 7  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Вот код, который написал.

Код AS1/AS2:
var shag = 2;
//old values
var x_mouse;
var y_mouse;
 
x_mouse = _xmouse;
y_mouse = _ymouse;
 
cl.onMouseMove = function() {
	//right
	if (_xmouse>x_mouse) {
		if (this._x<0) {
			this._x=this._x+shag;//
		}
	}
	//up      
	if (_ymouse<y_mouse) {
		if (this._y+this._height>400) {
			this._y=this._y-shag;// 
		}
	}
	//down      
	if (_ymouse>y_mouse) {
		if (this._y<0) {
			this._y=this._y+shag;// 
		}
	}
	//left      
	if (_xmouse<x_mouse) {
		if (this._x+this._width>=550) {
			this._x=this._x-shag;// - 
		}
	}
	updateAfterEvent();//обновление
	x_mouse = _xmouse;
	y_mouse = _ymouse;
};
В onRollOut собирался продолжать двигать клип, по направлению мышки в последний момент до выхода за границы плеера.
Например:

Код AS1/AS2:
var move_ver = 0;//1 - up, -1 - down, 0 - stop 
var move_hor = 0;//1 - right, -1 - left, 0 - stop
var flag_stop = false;
 
cl.onRollOut = function() {
	flag_stop = false;
	moving();
};
 
function moving() {
	while (!flag_stop) {
		if ((move_ver == 0) and (move_hor == 0)) {
			flag_stop = true;
		} else {
			//up
			if (move_ver == 1) {
				if (cl._y+cl._height>400) {
					cl._y = cl._y-3;
					move_ver = 1;
				} else {
					move_ver = 0;
 
				}
			}
			//down     
			if (move_ver == -1) {
				if (cl._y<0) {
					cl._y= cl._y+3;// 
					move_ver = -1;
				} else {
					move_ver = 0;
				}
			}
			//right   
			if (move_hor == 1) {
				if (cl._x<0) {
					cl._x=cl._x+3;//
					move_hor = 1;
				} else {
					move_hor = 0;
				}
			}
			//left 
			if (move_hor == -1) {
				if (cl._x+cl._width>=550) {
					cl._x=cl._x-3;// - 
					move_hor = -1;
				}
				else {
					move_hor = 0;
				}
			}
		}
	}
Но при этом картинка не движется, а перепрыгивает на конец...