Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.05.2008, 18:42
udjin вне форума Посмотреть профиль Отправить личное сообщение для udjin Посетить домашнюю страницу udjin Найти все сообщения от udjin
  № 1  
Ответить с цитированием
udjin

Регистрация: Apr 2004
Сообщений: 32
Отправить сообщение для udjin с помощью ICQ
По умолчанию Движение клипа

Коллеги, помогите никчёмному малевальщику. Я в формулах и уравнениях не силён, а требуется написать скрипт для такой штуки:

клип шевелится в сторону, противоположную движению мышки, но не линейно, а с коэффициентом и плавно замедляясь, при остановке мышки.
После того как мышь выходит за пределы рабочей области, клип возвращается на исходное место, так же плавно замедляясь.

А?

Старый 06.05.2008, 19:26
udjin вне форума Посмотреть профиль Отправить личное сообщение для udjin Посетить домашнюю страницу udjin Найти все сообщения от udjin
  № 2  
Ответить с цитированием
udjin

Регистрация: Apr 2004
Сообщений: 32
Отправить сообщение для udjin с помощью ICQ
Нашёл скрипт, который заставляет клип бегать за курсором нужным образом. Как его модифицировать, чтобы клип бегал в противоположную сторону?

Код:
pic.onMouseMove = function () {
	this.speed = 0.1;
	this.onEnterFrame = function () {
		var dx = this._x - this._parent._xmouse;
		var dy = this._y - this._parent._ymouse;
		this._x -= dx * this.speed;
		this._y -= dy * this.speed;
		if (!(Math.abs (dx) > 0.01 && Math.abs (dy) > 0.01)) {
			this._x = this._parent._xmouse;
			this._y = this._parent._ymouse;
			delete this.onEnterFrame;
		}
	};
};

Старый 06.05.2008, 20:04
crc вне форума Посмотреть профиль Отправить личное сообщение для crc Найти все сообщения от crc
  № 3  
Ответить с цитированием
crc
 
Аватар для crc

Регистрация: Jan 2008
Адрес: Вильнюс
Сообщений: 91
Отправить сообщение для crc с помощью ICQ
Код:
pic.onMouseMove = function () {
	this.speed = 0.1;
	this.onEnterFrame = function () {
		var dx = this._x - this._parent._xmouse;
		var dy = this._y - this._parent._ymouse;
		this._x += dx * this.speed;
		this._y += dy * this.speed;
		if (!(Math.abs (dx) > 0.01 && Math.abs (dy) > 0.01)) {
			this._x = this._parent._xmouse;
			this._y = this._parent._ymouse;
			delete this.onEnterFrame;
		}
		if (pic._x < 0 || pic._y < 0 || pic._x > Stage.height || pic._y > Stage.width)
		{
			pic._x = Stage.width/2;
			pic._y = Stage.height/2;
		}
	};
};

Старый 25.06.2008, 21:51
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 4  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
а как сделать что бы клип не уезжал за экран а плавно останавливался?
посмотрите как тут здорово сделано))))) вот бы тоже так забабацать))))
http://www.ffk-schick.com/ru/
если кто знает напишите плиз очень нужно и еще инетересно как сделано что разные клипв по разному смещаются? видимо смещение предусмотрено))))
Заставку можно пропустить))))

Старый 25.06.2008, 23:47
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 5  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
AlexDesinger, положение упаковки просто инвертировано положению мыши, деленному на какоето число. Если Вам известны высота и ширина сцены, и размеры клипа, кудаж он уедет?)))) Для маленьких клипов то же правило.
В общем виде так (стандартная точка привязки)
Код:
mc.onMouseMove = function  () {
    this._x = Stage.width-this._width-_xmouse + this._width/(Stage.width/_xmouse);
    this._y = Stage.height-this._height-_ymouse + this._height/(Stage.height/_ymouse);
}
границы конечно можно урегулировать, если не нужно движение от борта до борта)))
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 26.06.2008 в 00:53.
Старый 26.06.2008, 05:28
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 6  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
да это все так но как сделать что бы происходило замедление и остановка?
Ну т.е чтобы мувик не моментально реагировал на двиение
ясно что через onEnterFrame но у меня в голове неукладывается как это можно посчитать...
На примере выше происходит наоборот ускорение...чем дальше друг от друга мувик и курсор, тем быстрее скорость

Старый 27.06.2008, 17:39
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 7  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
вот нашел наконец что-то похожее
Код:
function CursorMovement() {
	speed = 0.9;
	dx = speed*(dx-_xmouse)+_xmouse;
	dy = speed*(dy-_ymouse)+_ymouse;
	mc._x = (1-mc._width/Stage.width)*dx+mc._width/2;
	mc._y = (1-mc._height/Stage.height)*dy+mc._height/2;
}
setInterval(CursorMovement,100);
весь фокус в том что клип должен быть больше чем Stage, тогда происходит "обратное движение", но если меньше то движение будет ЗА мышкой.

Вот теперь как бы придумать чтобы , скажем два или три клипа смещались немного поразному, но при этом не перегрузить проц?


Последний раз редактировалось AlexDesinger; 27.06.2008 в 17:43.
Старый 27.06.2008, 18:25
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Так Вам инерции чтоли не хватает? ОК, тормозим!
Код:
mc.onMouseMove = function  () {
    this.cell_x = Stage.width-this._width-_xmouse + this._width/(Stage.width/_xmouse);
    this.cell_y = Stage.height-this._height-_ymouse + this._height/(Stage.height/_ymouse);
}    
mc.onEnterFrame = function () {
    this._x = this._x + (this.cell_x - this._x)/10
    this._y = this._y + (this.cell_y - this._y)/10
}
__________________
Reality.getBounds(this);

Старый 27.06.2008, 20:35
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 9  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Офигеть, просто!!! Круто....то что надо!!! Спасибо)))))))))))

Старый 20.09.2008, 18:19
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 10  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Wolsh, подскажи плиз как мне сделать, чтобы клип mc двигался не по всей поверхности Stage, а находился внутри клипа, скажем clip_mc и двигался только в пределах границ этого клипа?

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:35.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.